From stdpp Require Import prelude finite. From Coq Require Import FinFun FunctionalExtensionality Program. From VLSM Require Import Lib.Preamble Lib.ListExtras Lib.StdppListSet Lib.FinExtras. From VLSM Require Import Core.VLSM Core.VLSMProjections Core.Composition Core.ProjectionTraces. From VLSM Require Import Core.SubProjectionTraces Core.Equivocation Core.Equivocation.NoEquivocation. From VLSM Require Import Core.Equivocators.Common Core.Equivocators.Projections. From VLSM Require Import Core.Equivocators.MessageProperties. From VLSM Require Import Core.Equivocators.Composition.Common.
Section equivocators_composition_projections. Context {message : Type} `{finite.Finite index} (IM : index -> VLSM message) `{forall i : index, HasBeenSentCapability (IM i)} (equivocator_descriptors := equivocator_descriptors IM) (equivocators_no_equivocations_vlsm := equivocators_no_equivocations_vlsm IM) (equivocators_state_project := equivocators_state_project IM) (equivocator_IM := equivocator_IM IM) (equivocator_descriptors_update := equivocator_descriptors_update IM) (proper_equivocator_descriptors := proper_equivocator_descriptors IM) (FreeE := free_composite_vlsm equivocator_IM) (PreFreeE := pre_loaded_with_all_messages_vlsm FreeE) (Free := free_composite_vlsm IM) (PreFree := pre_loaded_with_all_messages_vlsm Free) .
Given a transition_item
item in the compositions of equivocators
of components IM and an equivocator_descriptors, if the descriptors
are all valid in the destination of the transition this returns a
set of updated descriptors for corresponding positions in the origin state
of the transition, and if the transition was an in-place change to an
exisitng alternative it also returns a projected transition item in
the plain composition of IM.
Definition equivocators_transition_item_project (eqv_descriptors : equivocator_descriptors) (item : composite_transition_item equivocator_IM) : option (option (composite_transition_item IM) * equivocator_descriptors) := let sx := equivocators_state_project eqv_descriptors (destination item) in let eqv := projT1 (l item) in let deqv := eqv_descriptors eqv in match equivocator_vlsm_transition_item_project (IM eqv) (composite_transition_item_projection equivocator_IM item) deqv with | Some (Some item', deqv') => Some (Some (@Build_transition_item message (@type message Free) (existT eqv (l item')) (input item) sx (output item)) , equivocator_descriptors_update eqv_descriptors eqv deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update eqv_descriptors eqv deqv') | None => None end.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Hdescriptors: proper_equivocator_descriptors descriptors (destination item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
Hpr: equivocators_transition_item_project descriptors item = Some (oitem, idescriptors)set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) (destination item)) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Hdescriptors: proper_equivocator_descriptors descriptors (destination item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
Hpr: equivocators_transition_item_project descriptors item = Some (oitem, idescriptors)set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) (destination item)) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Hdescriptors: proper_equivocator_descriptors descriptors (destination item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
Hpr: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := eq_rect_r (λ n : index, vlabel (equivocator_IM n)) (projT2 (l item)) eq_refl; input := input item; destination := destination item (projT1 (l item)); output := output item |} (descriptors (projT1 (l item))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => None end = Some (oitem, idescriptors)set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) (destination item)) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Hdescriptors: proper_equivocator_descriptors descriptors (destination item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
Hpr: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (descriptors (projT1 (l item))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => None end = Some (oitem, idescriptors)set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) (destination item)) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Hdescriptors: proper_equivocator_descriptors descriptors (destination item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
oitemx: option (vtransition_item (IM (projT1 (l item))))
deqv': MachineDescriptor (IM (projT1 (l item)))
Hitem_pr: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (descriptors (projT1 (l item))) = Some (oitemx, deqv')
Hpr: match oitemx with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') end = Some (oitem, idescriptors)set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) (destination item)) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Hdescriptors: proper_equivocator_descriptors descriptors (destination item)
Ht: (let (i, li) := l item in let (si', om') := vtransition (equivocator_IM i) li (s i, input item) in (state_update equivocator_IM s i si', om')) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
oitemx: option (vtransition_item (IM (projT1 (l item))))
deqv': MachineDescriptor (IM (projT1 (l item)))
Hitem_pr: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (descriptors (projT1 (l item))) = Some (oitemx, deqv')
Hpr: match oitemx with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') end = Some (oitem, idescriptors)set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) (destination item)) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
l: label
input: option message
destination: state
output: option message
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Hdescriptors: proper_equivocator_descriptors descriptors (VLSM.destination {| l := l; input := input; destination := destination; output := output |})
Ht: (let (i, li) := VLSM.l {| l := l; input := input; destination := destination; output := output |} in let (si', om') := vtransition (equivocator_IM i) li (s i, VLSM.input {| l := l; input := input; destination := destination; output := output |}) in (state_update equivocator_IM s i si', om')) = (VLSM.destination {| l := l; input := input; destination := destination; output := output |}, VLSM.output {| l := l; input := input; destination := destination; output := output |})
Hv: composite_valid equivocator_IM (VLSM.l {| l := l; input := input; destination := destination; output := output |}) (s, VLSM.input {| l := l; input := input; destination := destination; output := output |})
oitemx: option (vtransition_item (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))))
deqv': MachineDescriptor (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})))
Hitem_pr: equivocator_vlsm_transition_item_project (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) {| l := projT2 (VLSM.l {| l := l; input := input; destination := destination; output := output |}); input := VLSM.input {| l := l; input := input; destination := destination; output := output |}; destination := VLSM.destination {| l := l; input := input; destination := destination; output := output |} (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})); output := VLSM.output {| l := l; input := input; destination := destination; output := output |} |} (descriptors (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) = Some (oitemx, deqv')
Hpr: match oitemx with | Some item' => Some (Some {| l := existT (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})) (VLSM.l item'); input := VLSM.input {| l := l; input := input; destination := destination; output := output |}; destination := equivocators_state_project descriptors (VLSM.destination {| l := l; input := input; destination := destination; output := output |}); output := VLSM.output {| l := l; input := input; destination := destination; output := output |} |}, equivocator_descriptors_update descriptors (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})) deqv') | None => Some (None, equivocator_descriptors_update descriptors (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})) deqv') end = Some (oitem, idescriptors)set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) (VLSM.destination {| l := l; input := input; destination := destination; output := output |})) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
l: _composite_label equivocator_IM
input: option message
destination: _composite_state equivocator_IM
output: option message
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Hdescriptors: proper_equivocator_descriptors descriptors destination
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM i) li (s i, input) in (state_update equivocator_IM s i si', om')) = (destination, output)
Hv: let (i, li) := l in vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM (projT1 l)))
deqv': MachineDescriptor (IM (projT1 l))
Hitem_pr: equivocator_vlsm_transition_item_project (IM (projT1 l)) {| l := projT2 l; input := input; destination := destination (projT1 l); output := output |} (descriptors (projT1 l)) = Some (oitemx, deqv')
Hpr: match oitemx with | Some item' => Some (Some {| l := existT (projT1 l) (VLSM.l item'); input := input; destination := equivocators_state_project descriptors destination; output := output |}, equivocator_descriptors_update descriptors (projT1 l) deqv') | None => Some (None, equivocator_descriptors_update descriptors (projT1 l) deqv') end = Some (oitem, idescriptors)set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) destination) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Hdescriptors: proper_equivocator_descriptors descriptors destination
Ht: (let (si', om') := vtransition (equivocator_IM i) li (s i, input) in (state_update equivocator_IM s i si', om')) = (destination, output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM (projT1 (existT i li))))
deqv': MachineDescriptor (IM (projT1 (existT i li)))
Hitem_pr: equivocator_vlsm_transition_item_project (IM (projT1 (existT i li))) {| l := projT2 (existT i li); input := input; destination := destination (projT1 (existT i li)); output := output |} (descriptors (projT1 (existT i li))) = Some (oitemx, deqv')
Hpr: match oitemx with | Some item' => Some (Some {| l := existT (projT1 (existT i li)) (l item'); input := input; destination := equivocators_state_project descriptors destination; output := output |}, equivocator_descriptors_update descriptors (projT1 (existT i li)) deqv') | None => Some (None, equivocator_descriptors_update descriptors (projT1 (existT i li)) deqv') end = Some (oitem, idescriptors)set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) destination) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Hdescriptors: proper_equivocator_descriptors descriptors destination
Ht: (let (si', om') := vtransition (equivocator_IM i) li (s i, input) in (state_update equivocator_IM s i si', om')) = (destination, output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := destination i; output := output |} (descriptors i) = Some (oitemx, deqv')
Hpr: match oitemx with | Some item' => Some (Some {| l := existT i (l item'); input := input; destination := equivocators_state_project descriptors destination; output := output |}, equivocator_descriptors_update descriptors i deqv') | None => Some (None, equivocator_descriptors_update descriptors i deqv') end = Some (oitem, idescriptors)set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) destination) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Hdescriptors: proper_equivocator_descriptors descriptors destination
si': state
om': option message
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', om')
Ht: (state_update equivocator_IM s i si', om') = (destination, output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := destination i; output := output |} (descriptors i) = Some (oitemx, deqv')
Hpr: match oitemx with | Some item' => Some (Some {| l := existT i (l item'); input := input; destination := equivocators_state_project descriptors destination; output := output |}, equivocator_descriptors_update descriptors i deqv') | None => Some (None, equivocator_descriptors_update descriptors i deqv') end = Some (oitem, idescriptors)set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) destination) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Hdescriptors: proper_equivocator_descriptors descriptors destination
si': state
om': option message
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', om')
Ht: (state_update equivocator_IM s i si', om') = (destination, output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := destination i; output := output |} (descriptors i) = Some (oitemx, deqv')
Hpr: match oitemx with | Some item' => Some (Some {| l := existT i (l item'); input := input; destination := equivocators_state_project descriptors destination; output := output |}, equivocator_descriptors_update descriptors i deqv') | None => Some (None, equivocator_descriptors_update descriptors i deqv') end = Some (oitem, idescriptors)
H2: state_update equivocator_IM s i si' = destination
H3: om' = outputset_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) (state_update equivocator_IM s i si')) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Ht: (state_update equivocator_IM s i si', output) = (state_update equivocator_IM s i si', output)
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hpr: match oitemx with | Some item' => Some (Some {| l := existT i (l item'); input := input; destination := equivocators_state_project descriptors (state_update equivocator_IM s i si'); output := output |}, equivocator_descriptors_update descriptors i deqv') | None => Some (None, equivocator_descriptors_update descriptors i deqv') end = Some (oitem, idescriptors)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) (state_update equivocator_IM s i si')) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hpr: match oitemx with | Some item' => Some (Some {| l := existT i (l item'); input := input; destination := equivocators_state_project descriptors (state_update equivocator_IM s i si'); output := output |}, equivocator_descriptors_update descriptors i deqv') | None => Some (None, equivocator_descriptors_update descriptors i deqv') end = Some (oitem, idescriptors)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) (state_update equivocator_IM s i si')) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) (equivocator_descriptors_update descriptors i deqv')) ⊆ set_union (equivocating_indices IM (enum index) (state_update equivocator_IM s i si')) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: eqv ∈ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) (equivocator_descriptors_update descriptors i deqv'))eqv ∈ set_union (equivocating_indices IM (enum index) (state_update equivocator_IM s i si')) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: eqv ∈ equivocating_indices IM (enum index) s ∨ eqv ∈ newmachine_descriptors_list IM (enum index) (equivocator_descriptors_update descriptors i deqv')eqv ∈ set_union (equivocating_indices IM (enum index) (state_update equivocator_IM s i si')) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: eqv ∈ equivocating_indices IM (enum index) s ∨ eqv ∈ newmachine_descriptors_list IM (enum index) (equivocator_descriptors_update descriptors i deqv')eqv ∈ equivocating_indices IM (enum index) (state_update equivocator_IM s i si') ∨ eqv ∈ newmachine_descriptors_list IM (enum index) descriptorsmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: eqv ∈ equivocating_indices IM (enum index) s ∨ eqv ∈ newmachine_descriptors_list IM (enum index) (equivocator_descriptors_update descriptors i deqv')
e: eqv = ieqv ∈ equivocating_indices IM (enum index) (state_update equivocator_IM s i si') ∨ eqv ∈ newmachine_descriptors_list IM (enum index) descriptorsmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: eqv ∈ equivocating_indices IM (enum index) s ∨ eqv ∈ newmachine_descriptors_list IM (enum index) (equivocator_descriptors_update descriptors i deqv')
n: eqv ≠ ieqv ∈ equivocating_indices IM (enum index) (state_update equivocator_IM s i si') ∨ eqv ∈ newmachine_descriptors_list IM (enum index) descriptorsmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: eqv ∈ equivocating_indices IM (enum index) s ∨ eqv ∈ newmachine_descriptors_list IM (enum index) (equivocator_descriptors_update descriptors i deqv')
e: eqv = ieqv ∈ equivocating_indices IM (enum index) (state_update equivocator_IM s i si') ∨ eqv ∈ newmachine_descriptors_list IM (enum index) descriptorsmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
eqv: index
s: composite_state equivocator_IM
deqv': MachineDescriptor (IM eqv)
Heqv: eqv ∈ equivocating_indices IM (enum index) s ∨ eqv ∈ newmachine_descriptors_list IM (enum index) (equivocator_descriptors_update descriptors eqv deqv')
li: vlabel (equivocator_IM eqv)
input, output: option message
idescriptors: equivocator_descriptors
oitemx: option (vtransition_item (IM eqv))
si': state
Hitem_pr: equivocator_vlsm_transition_item_project (IM eqv) {| l := li; input := input; destination := state_update equivocator_IM s eqv si' eqv; output := output |} (descriptors eqv) = Some (oitemx, deqv')
Hv: vvalid (equivocator_IM eqv) li (s eqv, input)
Htei: vtransition (equivocator_IM eqv) li (s eqv, input) = (si', output)
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s eqv si')eqv ∈ equivocating_indices IM (enum index) (state_update equivocator_IM s eqv si') ∨ eqv ∈ newmachine_descriptors_list IM (enum index) descriptorsmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
eqv: index
s: composite_state equivocator_IM
deqv': MachineDescriptor (IM eqv)
Heqv: eqv ∈ filter (λ i : index, is_equivocating_state (IM i) (s i)) (enum index) ∨ eqv ∈ newmachine_descriptors_list IM (enum index) (equivocator_descriptors_update descriptors eqv deqv')
li: vlabel (equivocator_IM eqv)
input, output: option message
idescriptors: equivocator_descriptors
oitemx: option (vtransition_item (IM eqv))
si': state
Hitem_pr: equivocator_vlsm_transition_item_project (IM eqv) {| l := li; input := input; destination := state_update equivocator_IM s eqv si' eqv; output := output |} (descriptors eqv) = Some (oitemx, deqv')
Hv: vvalid (equivocator_IM eqv) li (s eqv, input)
Htei: vtransition (equivocator_IM eqv) li (s eqv, input) = (si', output)
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s eqv si')eqv ∈ filter (λ i : index, is_equivocating_state (IM i) (state_update equivocator_IM s eqv si' i)) (enum index) ∨ eqv ∈ newmachine_descriptors_list IM (enum index) descriptorsmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
eqv: index
s: composite_state equivocator_IM
deqv': MachineDescriptor (IM eqv)
Heqv: eqv ∈ filter (λ i : index, is_equivocating_state (IM i) (s i)) (enum index) ∨ eqv ∈ filter (λ i : index, is_newmachine_descriptor (IM i) (equivocator_descriptors_update descriptors eqv deqv' i)) (enum index)
li: vlabel (equivocator_IM eqv)
input, output: option message
idescriptors: equivocator_descriptors
oitemx: option (vtransition_item (IM eqv))
si': state
Hitem_pr: equivocator_vlsm_transition_item_project (IM eqv) {| l := li; input := input; destination := state_update equivocator_IM s eqv si' eqv; output := output |} (descriptors eqv) = Some (oitemx, deqv')
Hv: vvalid (equivocator_IM eqv) li (s eqv, input)
Htei: vtransition (equivocator_IM eqv) li (s eqv, input) = (si', output)
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s eqv si')eqv ∈ filter (λ i : index, is_equivocating_state (IM i) (state_update equivocator_IM s eqv si' i)) (enum index) ∨ eqv ∈ filter (λ i : index, is_newmachine_descriptor (IM i) (descriptors i)) (enum index)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
eqv: index
s: composite_state equivocator_IM
deqv': MachineDescriptor (IM eqv)
Heqv: is_equivocating_state (IM eqv) (s eqv) ∧ eqv ∈ enum index ∨ is_newmachine_descriptor (IM eqv) (equivocator_descriptors_update descriptors eqv deqv' eqv) ∧ eqv ∈ enum index
li: vlabel (equivocator_IM eqv)
input, output: option message
idescriptors: equivocator_descriptors
oitemx: option (vtransition_item (IM eqv))
si': state
Hitem_pr: equivocator_vlsm_transition_item_project (IM eqv) {| l := li; input := input; destination := state_update equivocator_IM s eqv si' eqv; output := output |} (descriptors eqv) = Some (oitemx, deqv')
Hv: vvalid (equivocator_IM eqv) li (s eqv, input)
Htei: vtransition (equivocator_IM eqv) li (s eqv, input) = (si', output)
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s eqv si')is_equivocating_state (IM eqv) (state_update equivocator_IM s eqv si' eqv) ∧ eqv ∈ enum index ∨ is_newmachine_descriptor (IM eqv) (descriptors eqv) ∧ eqv ∈ enum indexmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
eqv: index
s: composite_state equivocator_IM
deqv': MachineDescriptor (IM eqv)
Heqv: is_equivocating_state (IM eqv) (s eqv) ∧ eqv ∈ enum index ∨ is_newmachine_descriptor (IM eqv) (equivocator_descriptors_update descriptors eqv deqv' eqv) ∧ eqv ∈ enum index
li: vlabel (equivocator_IM eqv)
input, output: option message
idescriptors: equivocator_descriptors
oitemx: option (vtransition_item (IM eqv))
si': state
Hitem_pr: equivocator_vlsm_transition_item_project (IM eqv) {| l := li; input := input; destination := state_update equivocator_IM s eqv si' eqv; output := output |} (descriptors eqv) = Some (oitemx, deqv')
Hv: vvalid (equivocator_IM eqv) li (s eqv, input)
Htei: vtransition (equivocator_IM eqv) li (s eqv, input) = (si', output)
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s eqv si')is_equivocating_state (IM eqv) si' ∧ eqv ∈ enum index ∨ is_newmachine_descriptor (IM eqv) (descriptors eqv) ∧ eqv ∈ enum indexmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
eqv: index
s: composite_state equivocator_IM
deqv': MachineDescriptor (IM eqv)
Heqv: is_equivocating_state (IM eqv) (s eqv) ∧ eqv ∈ enum index ∨ is_newmachine_descriptor (IM eqv) (equivocator_descriptors_update descriptors eqv deqv' eqv) ∧ eqv ∈ enum index
li: vlabel (equivocator_IM eqv)
input, output: option message
idescriptors: equivocator_descriptors
oitemx: option (vtransition_item (IM eqv))
si': state
Hitem_pr: equivocator_vlsm_transition_item_project (IM eqv) {| l := li; input := input; destination := state_update equivocator_IM s eqv si' eqv; output := output |} (descriptors eqv) = Some (oitemx, deqv')
Hv: vvalid (equivocator_IM eqv) li (s eqv, input)
Htei: vtransition (equivocator_IM eqv) li (s eqv, input) = (si', output)
Hdescriptors: proper_descriptor (IM eqv) (descriptors eqv) (state_update equivocator_IM s eqv si' eqv)is_equivocating_state (IM eqv) si' ∧ eqv ∈ enum index ∨ is_newmachine_descriptor (IM eqv) (descriptors eqv) ∧ eqv ∈ enum indexmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
eqv: index
s: composite_state equivocator_IM
deqv': MachineDescriptor (IM eqv)
Heqv: is_equivocating_state (IM eqv) (s eqv) ∧ eqv ∈ enum index ∨ is_newmachine_descriptor (IM eqv) (equivocator_descriptors_update descriptors eqv deqv' eqv) ∧ eqv ∈ enum index
li: vlabel (equivocator_IM eqv)
input, output: option message
idescriptors: equivocator_descriptors
oitemx: option (vtransition_item (IM eqv))
si': state
Hitem_pr: equivocator_vlsm_transition_item_project (IM eqv) {| l := li; input := input; destination := si'; output := output |} (descriptors eqv) = Some (oitemx, deqv')
Hv: vvalid (equivocator_IM eqv) li (s eqv, input)
Htei: vtransition (equivocator_IM eqv) li (s eqv, input) = (si', output)
Hdescriptors: proper_descriptor (IM eqv) (descriptors eqv) si'is_equivocating_state (IM eqv) si' ∧ eqv ∈ enum index ∨ is_newmachine_descriptor (IM eqv) (descriptors eqv) ∧ eqv ∈ enum indexmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
eqv: index
s: composite_state equivocator_IM
deqv': MachineDescriptor (IM eqv)
Heqv: is_equivocating_state (IM eqv) (s eqv) ∧ eqv ∈ enum index ∨ is_newmachine_descriptor (IM eqv) (equivocator_descriptors_update descriptors eqv deqv' eqv) ∧ eqv ∈ enum index
li: vlabel (equivocator_IM eqv)
input, output: option message
idescriptors: equivocator_descriptors
oitemx: option (vtransition_item (IM eqv))
si': state
Hitem_pr: equivocator_vlsm_transition_item_project (IM eqv) {| l := li; input := input; destination := si'; output := output |} (descriptors eqv) = Some (oitemx, deqv')
Hv: vvalid (equivocator_IM eqv) li (s eqv, input)
Htei: vtransition (equivocator_IM eqv) li (s eqv, input) = (si', output)
Hdescriptors: proper_descriptor (IM eqv) (descriptors eqv) si'is_equivocating_state (IM eqv) si' ∨ is_newmachine_descriptor (IM eqv) (descriptors eqv) → is_equivocating_state (IM eqv) si' ∧ eqv ∈ enum index ∨ is_newmachine_descriptor (IM eqv) (descriptors eqv) ∧ eqv ∈ enum indexmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
eqv: index
s: composite_state equivocator_IM
deqv': MachineDescriptor (IM eqv)
Heqv: is_equivocating_state (IM eqv) (s eqv) ∧ eqv ∈ enum index ∨ is_newmachine_descriptor (IM eqv) (equivocator_descriptors_update descriptors eqv deqv' eqv) ∧ eqv ∈ enum index
li: vlabel (equivocator_IM eqv)
input, output: option message
idescriptors: equivocator_descriptors
oitemx: option (vtransition_item (IM eqv))
si': state
Hitem_pr: equivocator_vlsm_transition_item_project (IM eqv) {| l := li; input := input; destination := si'; output := output |} (descriptors eqv) = Some (oitemx, deqv')
Hv: vvalid (equivocator_IM eqv) li (s eqv, input)
Htei: vtransition (equivocator_IM eqv) li (s eqv, input) = (si', output)
Hdescriptors: proper_descriptor (IM eqv) (descriptors eqv) si'is_equivocating_state (IM eqv) si' ∨ is_newmachine_descriptor (IM eqv) (descriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
eqv: index
s: composite_state equivocator_IM
deqv': MachineDescriptor (IM eqv)
Heqv: is_equivocating_state (IM eqv) (s eqv) ∧ eqv ∈ enum index ∨ is_newmachine_descriptor (IM eqv) (equivocator_descriptors_update descriptors eqv deqv' eqv) ∧ eqv ∈ enum index
li: vlabel (equivocator_IM eqv)
input, output: option message
idescriptors: equivocator_descriptors
oitemx: option (vtransition_item (IM eqv))
si': state
Hitem_pr: equivocator_vlsm_transition_item_project (IM eqv) {| l := li; input := input; destination := si'; output := output |} (descriptors eqv) = Some (oitemx, deqv')
Hv: vvalid (equivocator_IM eqv) li (s eqv, input)
Htei: vtransition (equivocator_IM eqv) li (s eqv, input) = (si', output)
Hdescriptors: proper_descriptor (IM eqv) (descriptors eqv) si'is_equivocating_state (IM eqv) si' ∨ is_newmachine_descriptor (IM eqv) (descriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
eqv: index
s: composite_state equivocator_IM
deqv': MachineDescriptor (IM eqv)
Heqv: is_equivocating_state (IM eqv) (s eqv) ∧ eqv ∈ enum index ∨ is_newmachine_descriptor (IM eqv) (equivocator_descriptors_update descriptors eqv deqv' eqv) ∧ eqv ∈ enum index
li: vlabel (equivocator_IM eqv)
input, output: option message
idescriptors: equivocator_descriptors
oitemx: option (vtransition_item (IM eqv))
si': state
Hitem_pr: equivocator_vlsm_transition_item_project (IM eqv) {| l := li; input := input; destination := si'; output := output |} (descriptors eqv) = Some (oitemx, deqv')
Hv: vvalid (equivocator_IM eqv) li (s eqv, input)
Htei: vtransition (equivocator_IM eqv) li (s eqv, input) = (si', output)
Hdescriptors: proper_descriptor (IM eqv) (descriptors eqv) si'is_equivocating_state (IM eqv) (s eqv) ∨ is_newmachine_descriptor (IM eqv) deqv'message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
descriptors: equivocator_descriptors
eqv: index
s: composite_state equivocator_IM
deqv': MachineDescriptor (IM eqv)
Heqv: is_equivocating_state (IM eqv) (s eqv) ∧ eqv ∈ enum index ∨ is_newmachine_descriptor (IM eqv) (equivocator_descriptors_update descriptors eqv deqv' eqv) ∧ eqv ∈ enum indexis_equivocating_state (IM eqv) (s eqv) ∨ is_newmachine_descriptor (IM eqv) deqv'message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
descriptors: equivocator_descriptors
eqv: index
s: composite_state equivocator_IM
deqv': MachineDescriptor (IM eqv)
Heqv: is_equivocating_state (IM eqv) (s eqv) ∧ eqv ∈ enum index ∨ is_newmachine_descriptor (IM eqv) (Common.equivocator_descriptors_update IM descriptors eqv deqv' eqv) ∧ eqv ∈ enum indexis_equivocating_state (IM eqv) (s eqv) ∨ is_newmachine_descriptor (IM eqv) deqv'intuition.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
descriptors: equivocator_descriptors
eqv: index
s: composite_state equivocator_IM
deqv': MachineDescriptor (IM eqv)
Heqv: is_equivocating_state (IM eqv) (s eqv) ∧ eqv ∈ enum index ∨ is_newmachine_descriptor (IM eqv) deqv' ∧ eqv ∈ enum indexis_equivocating_state (IM eqv) (s eqv) ∨ is_newmachine_descriptor (IM eqv) deqv'message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: eqv ∈ equivocating_indices IM (enum index) s ∨ eqv ∈ newmachine_descriptors_list IM (enum index) (equivocator_descriptors_update descriptors i deqv')
n: eqv ≠ ieqv ∈ equivocating_indices IM (enum index) (state_update equivocator_IM s i si') ∨ eqv ∈ newmachine_descriptors_list IM (enum index) descriptorsmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: eqv ∈ equivocating_indices IM (enum index) s
n: eqv ≠ ieqv ∈ equivocating_indices IM (enum index) (state_update equivocator_IM s i si') ∨ eqv ∈ newmachine_descriptors_list IM (enum index) descriptorsmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: eqv ∈ newmachine_descriptors_list IM (enum index) (equivocator_descriptors_update descriptors i deqv')
n: eqv ≠ ieqv ∈ equivocating_indices IM (enum index) (state_update equivocator_IM s i si') ∨ eqv ∈ newmachine_descriptors_list IM (enum index) descriptorsmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: eqv ∈ equivocating_indices IM (enum index) s
n: eqv ≠ ieqv ∈ equivocating_indices IM (enum index) (state_update equivocator_IM s i si') ∨ eqv ∈ newmachine_descriptors_list IM (enum index) descriptorsmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: eqv ∈ equivocating_indices IM (enum index) s
n: eqv ≠ ieqv ∈ equivocating_indices IM (enum index) (state_update equivocator_IM s i si')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: is_equivocating_state (IM eqv) (s eqv) ∧ eqv ∈ enum index
n: eqv ≠ ieqv ∈ equivocating_indices IM (enum index) (state_update equivocator_IM s i si')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: is_equivocating_state (IM eqv) (s eqv)
Hin: eqv ∈ enum index
n: eqv ≠ ieqv ∈ equivocating_indices IM (enum index) (state_update equivocator_IM s i si')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: is_equivocating_state (IM eqv) (s eqv)
Hin: eqv ∈ enum index
n: eqv ≠ iis_equivocating_state (IM eqv) (state_update equivocator_IM s i si' eqv) ∧ eqv ∈ enum indexmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: is_equivocating_state (IM eqv) (s eqv)
Hin: eqv ∈ enum index
n: eqv ≠ iis_equivocating_state (IM eqv) (state_update equivocator_IM s i si' eqv)assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: is_equivocating_state (IM eqv) (s eqv)
Hin: eqv ∈ enum index
n: eqv ≠ iis_equivocating_state (IM eqv) (s eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: eqv ∈ newmachine_descriptors_list IM (enum index) (equivocator_descriptors_update descriptors i deqv')
n: eqv ≠ ieqv ∈ equivocating_indices IM (enum index) (state_update equivocator_IM s i si') ∨ eqv ∈ newmachine_descriptors_list IM (enum index) descriptorsmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: eqv ∈ newmachine_descriptors_list IM (enum index) (equivocator_descriptors_update descriptors i deqv')
n: eqv ≠ ieqv ∈ newmachine_descriptors_list IM (enum index) descriptorsmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: is_newmachine_descriptor (IM eqv) (equivocator_descriptors_update descriptors i deqv' eqv) ∧ eqv ∈ enum index
n: eqv ≠ ieqv ∈ newmachine_descriptors_list IM (enum index) descriptorsmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: is_newmachine_descriptor (IM eqv) (equivocator_descriptors_update descriptors i deqv' eqv)
Hin: eqv ∈ enum index
n: eqv ≠ ieqv ∈ newmachine_descriptors_list IM (enum index) descriptorsmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: is_newmachine_descriptor (IM eqv) (equivocator_descriptors_update descriptors i deqv' eqv)
Hin: eqv ∈ enum index
n: eqv ≠ iis_newmachine_descriptor (IM eqv) (descriptors eqv) ∧ eqv ∈ enum indexmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: is_newmachine_descriptor (IM eqv) (equivocator_descriptors_update descriptors i deqv' eqv)
Hin: eqv ∈ enum index
n: eqv ≠ iis_newmachine_descriptor (IM eqv) (descriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: is_newmachine_descriptor (IM eqv) (Common.equivocator_descriptors_update IM descriptors i deqv' eqv)
Hin: eqv ∈ enum index
n: eqv ≠ iis_newmachine_descriptor (IM eqv) (descriptors eqv)assumption. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
si': state
Hdescriptors: proper_equivocator_descriptors descriptors (state_update equivocator_IM s i si')
Htei: vtransition (equivocator_IM i) li (s i, input) = (si', output)
Hv: vvalid (equivocator_IM i) li (s i, input)
oitemx: option (vtransition_item (IM i))
deqv': MachineDescriptor (IM i)
Hitem_pr: equivocator_vlsm_transition_item_project (IM i) {| l := li; input := input; destination := state_update equivocator_IM s i si' i; output := output |} (descriptors i) = Some (oitemx, deqv')
eqv: index
Heqv: is_newmachine_descriptor (IM eqv) (descriptors eqv)
Hin: eqv ∈ enum index
n: eqv ≠ iis_newmachine_descriptor (IM eqv) (descriptors eqv)
zero_descriptors are preserved when projecting transition_items of the
composition of equivocators.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
Hpr: equivocators_transition_item_project descriptors item = Some (oitem, idescriptors)∀ i : index, descriptors i = Existing 0 → idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
Hpr: equivocators_transition_item_project descriptors item = Some (oitem, idescriptors)∀ i : index, descriptors i = Existing 0 → idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
Hpr: equivocators_transition_item_project descriptors item = Some (oitem, idescriptors)
i: index
Hi: descriptors i = Existing 0idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
Hpr: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (descriptors (projT1 (l item))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => None end = Some (oitem, idescriptors)
i: index
Hi: descriptors i = Existing 0idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
Hpr: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (descriptors (projT1 (l item))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => None end = Some (oitem, idescriptors)
i: index
Hi: descriptors i = Existing 0
e: i = projT1 (l item)idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
Hpr: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (descriptors (projT1 (l item))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => None end = Some (oitem, idescriptors)
i: index
Hi: descriptors i = Existing 0
n: i ≠ projT1 (l item)idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
Hpr: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (descriptors (projT1 (l item))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => None end = Some (oitem, idescriptors)
i: index
Hi: descriptors i = Existing 0
e: i = projT1 (l item)idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
Hpr: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (descriptors (projT1 (l item))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => None end = Some (oitem, idescriptors)
Hi: descriptors (projT1 (l item)) = Existing 0idescriptors (projT1 (l item)) = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
Hpr: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (Existing 0) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => None end = Some (oitem, idescriptors)
Hi: descriptors (projT1 (l item)) = Existing 0idescriptors (projT1 (l item)) = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
Hpr: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (Existing 0) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => None end = Some (oitem, idescriptors)
Hi: descriptors (projT1 (l item)) = Existing 0
Hpr_item: vtransition (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)), input (composite_transition_item_projection equivocator_IM item)) = (destination (composite_transition_item_projection equivocator_IM item), output (composite_transition_item_projection equivocator_IM item)) → vvalid (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)), input (composite_transition_item_projection equivocator_IM item)) → ∃ oitem : option (vtransition_item (IM (projT1 (l item)))), equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (Existing 0) = Some (oitem, Existing 0)idescriptors (projT1 (l item)) = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
pr_item: let i := projT1 (l item) in vtransition_item (equivocator_IM i)
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM item
Hpr: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) pr_item (Existing 0) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => None end = Some (oitem, idescriptors)
Hi: descriptors (projT1 (l item)) = Existing 0
Hpr_item: vtransition (equivocator_vlsm (IM (projT1 (l item)))) (l pr_item) (s (projT1 (l item)), input pr_item) = (destination pr_item, output pr_item) → vvalid (equivocator_vlsm (IM (projT1 (l item)))) (l pr_item) (s (projT1 (l item)), input pr_item) → ∃ oitem : option (vtransition_item (IM (projT1 (l item)))), equivocator_vlsm_transition_item_project (IM (projT1 (l item))) pr_item (Existing 0) = Some (oitem, Existing 0)idescriptors (projT1 (l item)) = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
pr_item: let i := projT1 (l item) in vtransition_item (equivocator_IM i)
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM item
Hpr: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) pr_item (Existing 0) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => None end = Some (oitem, idescriptors)
Hi: descriptors (projT1 (l item)) = Existing 0
Hpr_item: vtransition (equivocator_vlsm (IM (projT1 (l item)))) (l pr_item) (s (projT1 (l item)), input pr_item) = (destination pr_item, output pr_item) → vvalid (equivocator_vlsm (IM (projT1 (l item)))) (l pr_item) (s (projT1 (l item)), input pr_item) → ∃ oitem : option (vtransition_item (IM (projT1 (l item)))), equivocator_vlsm_transition_item_project (IM (projT1 (l item))) pr_item (Existing 0) = Some (oitem, Existing 0)vtransition (equivocator_vlsm (IM (projT1 (l item)))) (l pr_item) (s (projT1 (l item)), input pr_item) = (destination pr_item, output pr_item)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
pr_item: let i := projT1 (l item) in vtransition_item (equivocator_IM i)
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM item
Hpr: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) pr_item (Existing 0) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => None end = Some (oitem, idescriptors)
Hi: descriptors (projT1 (l item)) = Existing 0
Hpr_item: vvalid (equivocator_vlsm (IM (projT1 (l item)))) (l pr_item) (s (projT1 (l item)), input pr_item) → ∃ oitem : option (vtransition_item (IM (projT1 (l item)))), equivocator_vlsm_transition_item_project (IM (projT1 (l item))) pr_item (Existing 0) = Some (oitem, Existing 0)idescriptors (projT1 (l item)) = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
pr_item: let i := projT1 (l item) in vtransition_item (equivocator_IM i)
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM item
Hpr: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) pr_item (Existing 0) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => None end = Some (oitem, idescriptors)
Hi: descriptors (projT1 (l item)) = Existing 0
Hpr_item: vtransition (equivocator_vlsm (IM (projT1 (l item)))) (l pr_item) (s (projT1 (l item)), input pr_item) = (destination pr_item, output pr_item) → vvalid (equivocator_vlsm (IM (projT1 (l item)))) (l pr_item) (s (projT1 (l item)), input pr_item) → ∃ oitem : option (vtransition_item (IM (projT1 (l item)))), equivocator_vlsm_transition_item_project (IM (projT1 (l item))) pr_item (Existing 0) = Some (oitem, Existing 0)vtransition (equivocator_vlsm (IM (projT1 (l item)))) (l pr_item) (s (projT1 (l item)), input pr_item) = (destination pr_item, output pr_item)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
pr_item: let i := projT1 (l item) in vtransition_item (equivocator_IM i)
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM itemvtransition (equivocator_vlsm (IM (projT1 (l item)))) (l pr_item) (s (projT1 (l item)), input pr_item) = (destination pr_item, output pr_item)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
l: label
input: option message
destination: state
output: option message
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (VLSM.l {| l := l; input := input; destination := destination; output := output |}) (s, VLSM.input {| l := l; input := input; destination := destination; output := output |}) = (VLSM.destination {| l := l; input := input; destination := destination; output := output |}, VLSM.output {| l := l; input := input; destination := destination; output := output |})
pr_item: let i := projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}) in vtransition_item (equivocator_IM i)
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM {| l := l; input := input; destination := destination; output := output |}vtransition (equivocator_vlsm (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})))) (VLSM.l pr_item) (s (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})), VLSM.input pr_item) = (VLSM.destination pr_item, VLSM.output pr_item)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
l: _composite_label equivocator_IM
input: option message
destination: _composite_state equivocator_IM
output: option message
s: composite_state equivocator_IM
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM i) li (s i, input) in (state_update equivocator_IM s i si', om')) = (destination, output)
pr_item: vtransition_item (equivocator_IM (projT1 l))
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM {| l := l; input := input; destination := destination; output := output |}vtransition (equivocator_vlsm (IM (projT1 l))) (VLSM.l pr_item) (s (projT1 l), VLSM.input pr_item) = (VLSM.destination pr_item, VLSM.output pr_item)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
s: composite_state equivocator_IM
Ht: (let (si', om') := vtransition (equivocator_IM i) li (s i, input) in (state_update equivocator_IM s i si', om')) = (destination, output)
pr_item: vtransition_item (equivocator_IM (projT1 (existT i li)))
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |}vtransition (equivocator_vlsm (IM (projT1 (existT i li)))) (l pr_item) (s (projT1 (existT i li)), VLSM.input pr_item) = (VLSM.destination pr_item, VLSM.output pr_item)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
s: composite_state equivocator_IM
Ht: (let (si', om') := vtransition (equivocator_IM i) li (s i, input) in (state_update equivocator_IM s i si', om')) = (destination, output)
pr_item: vtransition_item (equivocator_IM (projT1 (existT i li)))
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |}vtransition (equivocator_vlsm (IM i)) (l pr_item) (s i, VLSM.input pr_item) = (VLSM.destination pr_item, VLSM.output pr_item)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
s: composite_state equivocator_IM
si': state
om': option message
Hti: vtransition (equivocator_IM i) li (s i, input) = (si', om')
Ht: (state_update equivocator_IM s i si', om') = (destination, output)
pr_item: vtransition_item (equivocator_IM (projT1 (existT i li)))
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |}vtransition (equivocator_vlsm (IM i)) (l pr_item) (s i, VLSM.input pr_item) = (VLSM.destination pr_item, VLSM.output pr_item)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
s: composite_state equivocator_IM
si': state
om': option message
Hti: vtransition (equivocator_IM i) li (s i, input) = (si', om')
Ht: (state_update equivocator_IM s i si', om') = (destination, output)
pr_item: vtransition_item (equivocator_IM (projT1 (existT i li)))
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |}
H0: state_update equivocator_IM s i si' = destination
H1: om' = outputvtransition (equivocator_vlsm (IM i)) (l pr_item) (s i, VLSM.input pr_item) = (VLSM.destination pr_item, VLSM.output pr_item)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': state
Ht: (state_update equivocator_IM s i si', output) = (state_update equivocator_IM s i si', output)
Hti: vtransition (equivocator_IM i) li (s i, input) = (si', output)vtransition (equivocator_vlsm (IM i)) (l (composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := state_update equivocator_IM s i si'; output := output |})) (s i, VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := state_update equivocator_IM s i si'; output := output |})) = (destination (composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := state_update equivocator_IM s i si'; output := output |}), VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := state_update equivocator_IM s i si'; output := output |}))message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': state
Ht: (state_update equivocator_IM s i si', output) = (state_update equivocator_IM s i si', output)
Hti: vtransition (equivocator_IM i) li (s i, input) = (si', output)vtransition (equivocator_vlsm (IM i)) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) (s i, input) = (state_update equivocator_IM s i si' i, output)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': state
Ht: (state_update equivocator_IM s i si', output) = (state_update equivocator_IM s i si', output)
Hti: vtransition (equivocator_IM i) li (s i, input) = (si', output)vtransition (equivocator_vlsm (IM i)) (eq_rect i (λ y : index, vlabel (equivocator_IM y)) li i (eq_sym eq_refl)) (s i, input) = (state_update equivocator_IM s i si' i, output)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': state
Ht: (state_update equivocator_IM s i si', output) = (state_update equivocator_IM s i si', output)
Hti: vtransition (equivocator_IM i) li (s i, input) = (si', output)vtransition (equivocator_vlsm (IM i)) li (s i, input) = (state_update equivocator_IM s i si' i, output)assumption.message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': state
Ht: (state_update equivocator_IM s i si', output) = (state_update equivocator_IM s i si', output)
Hti: vtransition (equivocator_IM i) li (s i, input) = (si', output)vtransition (equivocator_vlsm (IM i)) li (s i, input) = (si', output)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
pr_item: let i := projT1 (l item) in vtransition_item (equivocator_IM i)
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM item
Hpr: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) pr_item (Existing 0) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => None end = Some (oitem, idescriptors)
Hi: descriptors (projT1 (l item)) = Existing 0
Hpr_item: vvalid (equivocator_vlsm (IM (projT1 (l item)))) (l pr_item) (s (projT1 (l item)), input pr_item) → ∃ oitem : option (vtransition_item (IM (projT1 (l item)))), equivocator_vlsm_transition_item_project (IM (projT1 (l item))) pr_item (Existing 0) = Some (oitem, Existing 0)idescriptors (projT1 (l item)) = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
pr_item: let i := projT1 (l item) in vtransition_item (equivocator_IM i)
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM item
Hpr: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) pr_item (Existing 0) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => None end = Some (oitem, idescriptors)
Hi: descriptors (projT1 (l item)) = Existing 0
Hpr_item: vvalid (equivocator_vlsm (IM (projT1 (l item)))) (l pr_item) (s (projT1 (l item)), input pr_item) → ∃ oitem : option (vtransition_item (IM (projT1 (l item)))), equivocator_vlsm_transition_item_project (IM (projT1 (l item))) pr_item (Existing 0) = Some (oitem, Existing 0)vvalid (equivocator_vlsm (IM (projT1 (l item)))) (l pr_item) (s (projT1 (l item)), input pr_item)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
pr_item: let i := projT1 (l item) in vtransition_item (equivocator_IM i)
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM item
Hpr: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) pr_item (Existing 0) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => None end = Some (oitem, idescriptors)
Hi: descriptors (projT1 (l item)) = Existing 0
Hpr_item: ∃ oitem : option (vtransition_item (IM (projT1 (l item)))), equivocator_vlsm_transition_item_project (IM (projT1 (l item))) pr_item (Existing 0) = Some (oitem, Existing 0)idescriptors (projT1 (l item)) = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
pr_item: let i := projT1 (l item) in vtransition_item (equivocator_IM i)
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM item
Hpr: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) pr_item (Existing 0) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => None end = Some (oitem, idescriptors)
Hi: descriptors (projT1 (l item)) = Existing 0
Hpr_item: vvalid (equivocator_vlsm (IM (projT1 (l item)))) (l pr_item) (s (projT1 (l item)), input pr_item) → ∃ oitem : option (vtransition_item (IM (projT1 (l item)))), equivocator_vlsm_transition_item_project (IM (projT1 (l item))) pr_item (Existing 0) = Some (oitem, Existing 0)vvalid (equivocator_vlsm (IM (projT1 (l item)))) (l pr_item) (s (projT1 (l item)), input pr_item)message, index: Type
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hv: composite_valid equivocator_IM (l item) (s, input item)
pr_item: let i := projT1 (l item) in vtransition_item (equivocator_IM i)
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM itemvvalid (equivocator_vlsm (IM (projT1 (l item)))) (l pr_item) (s (projT1 (l item)), input pr_item)message, index: Type
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
l: label
input: option message
destination: state
output: option message
s: composite_state equivocator_IM
Hv: composite_valid equivocator_IM (VLSM.l {| l := l; input := input; destination := destination; output := output |}) (s, VLSM.input {| l := l; input := input; destination := destination; output := output |})
pr_item: let i := projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}) in vtransition_item (equivocator_IM i)
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM {| l := l; input := input; destination := destination; output := output |}vvalid (equivocator_vlsm (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})))) (VLSM.l pr_item) (s (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})), VLSM.input pr_item)message, index: Type
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
l: _composite_label equivocator_IM
input: option message
destination: _composite_state equivocator_IM
output: option message
s: composite_state equivocator_IM
Hv: let (i, li) := l in vvalid (equivocator_IM i) li (s i, input)
pr_item: vtransition_item (equivocator_IM (projT1 l))
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM {| l := l; input := input; destination := destination; output := output |}vvalid (equivocator_vlsm (IM (projT1 l))) (VLSM.l pr_item) (s (projT1 l), VLSM.input pr_item)message, index: Type
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM i) li (s i, input)
pr_item: vtransition_item (equivocator_IM (projT1 (existT i li)))
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |}vvalid (equivocator_vlsm (IM (projT1 (existT i li)))) (l pr_item) (s (projT1 (existT i li)), VLSM.input pr_item)message, index: Type
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM i) li (s i, input)
pr_item: vtransition_item (equivocator_IM (projT1 (existT i li)))
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |}vvalid (equivocator_vlsm (IM i)) (l pr_item) (s i, VLSM.input pr_item)message, index: Type
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM i) li (s i, input)vvalid (equivocator_vlsm (IM i)) (l (composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |})) (s i, VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |}))message, index: Type
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM i) li (s i, input)vvalid (equivocator_vlsm (IM i)) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) (s i, input)message, index: Type
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM i) li (s i, input)vvalid (equivocator_vlsm (IM i)) (eq_rect i (λ y : index, vlabel (equivocator_IM y)) li i (eq_sym eq_refl)) (s i, input)assumption.message, index: Type
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM i) li (s i, input)vvalid (equivocator_vlsm (IM i)) li (s i, input)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
pr_item: let i := projT1 (l item) in vtransition_item (equivocator_IM i)
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM item
Hpr: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) pr_item (Existing 0) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => None end = Some (oitem, idescriptors)
Hi: descriptors (projT1 (l item)) = Existing 0
Hpr_item: ∃ oitem : option (vtransition_item (IM (projT1 (l item)))), equivocator_vlsm_transition_item_project (IM (projT1 (l item))) pr_item (Existing 0) = Some (oitem, Existing 0)idescriptors (projT1 (l item)) = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
pr_item: let i := projT1 (l item) in vtransition_item (equivocator_IM i)
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM item
Hpr: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) pr_item (Existing 0) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => None end = Some (oitem, idescriptors)
Hi: descriptors (projT1 (l item)) = Existing 0
oitem': option (vtransition_item (IM (projT1 (l item))))
Hpr_item: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) pr_item (Existing 0) = Some (oitem', Existing 0)idescriptors (projT1 (l item)) = Existing 0destruct oitem'; inversion Hpr ; unfold equivocator_descriptors_update; rewrite equivocator_descriptors_update_eq; reflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
pr_item: let i := projT1 (l item) in vtransition_item (equivocator_IM i)
Heqpr_item: pr_item = composite_transition_item_projection equivocator_IM item
oitem': option (vtransition_item (IM (projT1 (l item))))
Hpr: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) (Existing 0)) | None => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) (Existing 0)) end = Some (oitem, idescriptors)
Hi: descriptors (projT1 (l item)) = Existing 0
Hpr_item: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) pr_item (Existing 0) = Some (oitem', Existing 0)idescriptors (projT1 (l item)) = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
Hpr: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (descriptors (projT1 (l item))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => None end = Some (oitem, idescriptors)
i: index
Hi: descriptors i = Existing 0
n: i ≠ projT1 (l item)idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
p: (option (vtransition_item (IM (projT1 (l item)))) * MachineDescriptor (IM (projT1 (l item))))%type
Hpr': equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (descriptors (projT1 (l item))) = Some p
Hpr: (let (o, deqv') := p in match o with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') | None => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) deqv') end) = Some (oitem, idescriptors)
i: index
Hi: descriptors i = Existing 0
n: i ≠ projT1 (l item)idescriptors i = Existing 0destruct o; inversion Hpr ; unfold equivocator_descriptors_update; rewrite equivocator_descriptors_update_neq; assumption. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
oitem: option (composite_transition_item IM)
idescriptors: equivocator_descriptors
s: composite_state equivocator_IM
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hv: composite_valid equivocator_IM (l item) (s, input item)
o: option (vtransition_item (IM (projT1 (l item))))
m: MachineDescriptor (IM (projT1 (l item)))
Hpr': equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (descriptors (projT1 (l item))) = Some (o, m)
Hpr: match o with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project descriptors (destination item); output := output item |}, equivocator_descriptors_update descriptors (projT1 (l item)) m) | None => Some (None, equivocator_descriptors_update descriptors (projT1 (l item)) m) end = Some (oitem, idescriptors)
i: index
Hi: descriptors i = Existing 0
n: i ≠ projT1 (l item)idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
i:= projT1 (l item): index
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (destination item i)is_Some (equivocators_transition_item_project eqv_descriptors item)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
i:= projT1 (l item): index
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (destination item i)is_Some (equivocators_transition_item_project eqv_descriptors item)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
i:= projT1 (l item): index
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (destination item i)
itemx: (option (vtransition_item (IM (projT1 (l item)))) * MachineDescriptor (IM (projT1 (l item))))%type
Hpr_item: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (eqv_descriptors (projT1 (l item))) = Some itemxis_Some (equivocators_transition_item_project eqv_descriptors item)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
i:= projT1 (l item): index
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (destination item i)
itemx: (option (vtransition_item (IM (projT1 (l item)))) * MachineDescriptor (IM (projT1 (l item))))%type
Hpr_item: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (eqv_descriptors (projT1 (l item))) = Some itemxis_Some match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (eqv_descriptors (projT1 (l item))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |}, equivocator_descriptors_update eqv_descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update eqv_descriptors (projT1 (l item)) deqv') | None => None endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
i:= projT1 (l item): index
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (destination item i)
itemx: (option (vtransition_item (IM (projT1 (l item)))) * MachineDescriptor (IM (projT1 (l item))))%type
Hpr_item: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (eqv_descriptors (projT1 (l item))) = Some itemxis_Some (let (o, deqv') := itemx in match o with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |}, equivocator_descriptors_update eqv_descriptors (projT1 (l item)) deqv') | None => Some (None, equivocator_descriptors_update eqv_descriptors (projT1 (l item)) deqv') end)destruct o; eexists; reflexivity. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
i:= projT1 (l item): index
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (destination item i)
o: option (vtransition_item (IM (projT1 (l item))))
m: MachineDescriptor (IM (projT1 (l item)))
Hpr_item: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (eqv_descriptors (projT1 (l item))) = Some (o, m)is_Some match o with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |}, equivocator_descriptors_update eqv_descriptors (projT1 (l item)) m) | None => Some (None, equivocator_descriptors_update eqv_descriptors (projT1 (l item)) m) endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)is_Some (equivocators_transition_item_project eqv_descriptors item)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)is_Some (equivocators_transition_item_project eqv_descriptors item)apply Hproper. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)proper_descriptor (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (destination item (projT1 (l item)))
A generalization of no_equivocating_equivocator_transition_item_project to
the composition of equivocators.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
i:= projT1 (l item): index
Hzero: eqv_descriptors i = Existing 0
Hdest_i: is_singleton_state (IM i) (destination item i)
s: composite_state equivocator_IM
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), let lx := existT i (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) in equivocators_transition_item_project eqv_descriptors item = Some (Some {| l := lx; input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |}, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
i:= projT1 (l item): index
Hzero: eqv_descriptors i = Existing 0
Hdest_i: is_singleton_state (IM i) (destination item i)
s: composite_state equivocator_IM
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), let lx := existT i (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) in equivocators_transition_item_project eqv_descriptors item = Some (Some {| l := lx; input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |}, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
i:= projT1 (l item): index
Hzero: eqv_descriptors i = Existing 0
Hdest_i: is_singleton_state (IM i) (destination item i)
s: composite_state equivocator_IM
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv_pr: vvalid (equivocator_vlsm (IM i)) (l (composite_transition_item_projection equivocator_IM item)) (s i, input (composite_transition_item_projection equivocator_IM item)) → vtransition (equivocator_vlsm (IM i)) (l (composite_transition_item_projection equivocator_IM item)) (s i, input (composite_transition_item_projection equivocator_IM item)) = (destination (composite_transition_item_projection equivocator_IM item), output (composite_transition_item_projection equivocator_IM item)) → ∃ Hex : existing_equivocator_label (IM i) (l (composite_transition_item_projection equivocator_IM item)), equivocator_vlsm_transition_item_project (IM i) (composite_transition_item_projection equivocator_IM item) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM i) (l (composite_transition_item_projection equivocator_IM item)) Hex; input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) (Existing 0); output := output (composite_transition_item_projection equivocator_IM item) |}, Existing 0)∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), let lx := existT i (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) in equivocators_transition_item_project eqv_descriptors item = Some (Some {| l := lx; input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |}, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
i:= projT1 (l {| l := existT x v; input := input; destination := destination; output := output |}): index
Hzero: eqv_descriptors i = Existing 0
Hdest_i: is_singleton_state (IM i) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} i)
s: composite_state equivocator_IM
Hv: composite_valid equivocator_IM (l {| l := existT x v; input := input; destination := destination; output := output |}) (s, VLSM.input {| l := existT x v; input := input; destination := destination; output := output |})
Ht: composite_transition equivocator_IM (l {| l := existT x v; input := input; destination := destination; output := output |}) (s, VLSM.input {| l := existT x v; input := input; destination := destination; output := output |}) = (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |}, VLSM.output {| l := existT x v; input := input; destination := destination; output := output |})
Heqv_pr: vvalid (equivocator_vlsm (IM i)) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (s i, VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) → vtransition (equivocator_vlsm (IM i)) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (s i, VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) = (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}), VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) → ∃ Hex : existing_equivocator_label (IM i) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})), equivocator_vlsm_transition_item_project (IM i) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM i) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)∃ Hex : existing_equivocator_label (IM (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |}))) (projT2 (l {| l := existT x v; input := input; destination := destination; output := output |})), let lx := existT i (existing_equivocator_label_extract (IM (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |}))) (projT2 (l {| l := existT x v; input := input; destination := destination; output := output |})) Hex) in equivocators_transition_item_project eqv_descriptors {| l := existT x v; input := input; destination := destination; output := output |} = Some (Some {| l := lx; input := VLSM.input {| l := existT x v; input := input; destination := destination; output := output |}; destination := equivocators_state_project eqv_descriptors (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |}); output := VLSM.output {| l := existT x v; input := input; destination := destination; output := output |} |}, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
i:= projT1 (l {| l := existT x v; input := input; destination := destination; output := output |}): index
Hzero: eqv_descriptors i = Existing 0
Hdest_i: is_singleton_state (IM i) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} i)
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM x) v (s x, input)
Ht: (let (si', om') := vtransition (equivocator_IM x) v (s x, input) in (state_update equivocator_IM s x si', om')) = (destination, output)
Heqv_pr: vvalid (equivocator_vlsm (IM i)) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (s i, VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) → vtransition (equivocator_vlsm (IM i)) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (s i, VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) = (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}), VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) → ∃ Hex : existing_equivocator_label (IM i) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})), equivocator_vlsm_transition_item_project (IM i) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM i) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)∃ Hex : existing_equivocator_label (IM (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |}))) (projT2 (l {| l := existT x v; input := input; destination := destination; output := output |})), let lx := existT i (existing_equivocator_label_extract (IM (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |}))) (projT2 (l {| l := existT x v; input := input; destination := destination; output := output |})) Hex) in equivocators_transition_item_project eqv_descriptors {| l := existT x v; input := input; destination := destination; output := output |} = Some (Some {| l := lx; input := VLSM.input {| l := existT x v; input := input; destination := destination; output := output |}; destination := equivocators_state_project eqv_descriptors (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |}); output := VLSM.output {| l := existT x v; input := input; destination := destination; output := output |} |}, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
i:= x: index
Hzero: eqv_descriptors i = Existing 0
Hdest_i: is_singleton_state (IM i) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} i)
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM x) v (s x, input)
Ht: (let (si', om') := vtransition (equivocator_IM x) v (s x, input) in (state_update equivocator_IM s x si', om')) = (destination, output)
Heqv_pr: vvalid (equivocator_vlsm (IM i)) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (s i, VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) → vtransition (equivocator_vlsm (IM i)) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (s i, VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) = (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}), VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) → ∃ Hex : existing_equivocator_label (IM i) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})), equivocator_vlsm_transition_item_project (IM i) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM i) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)∃ Hex : existing_equivocator_label (IM (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |}))) (projT2 (l {| l := existT x v; input := input; destination := destination; output := output |})), let lx := existT i (existing_equivocator_label_extract (IM (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |}))) (projT2 (l {| l := existT x v; input := input; destination := destination; output := output |})) Hex) in equivocators_transition_item_project eqv_descriptors {| l := existT x v; input := input; destination := destination; output := output |} = Some (Some {| l := lx; input := VLSM.input {| l := existT x v; input := input; destination := destination; output := output |}; destination := equivocators_state_project eqv_descriptors (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |}); output := VLSM.output {| l := existT x v; input := input; destination := destination; output := output |} |}, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
Hzero: eqv_descriptors x = Existing 0
Hdest_i: is_singleton_state (IM x) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} x)
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM x) v (s x, input)
Ht: (let (si', om') := vtransition (equivocator_IM x) v (s x, input) in (state_update equivocator_IM s x si', om')) = (destination, output)
Heqv_pr: vvalid (equivocator_vlsm (IM x)) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (s x, VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) → vtransition (equivocator_vlsm (IM x)) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (s x, VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) = (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}), VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) → ∃ Hex : existing_equivocator_label (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})), equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)∃ Hex : existing_equivocator_label (IM (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |}))) (projT2 (l {| l := existT x v; input := input; destination := destination; output := output |})), let lx := existT x (existing_equivocator_label_extract (IM (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |}))) (projT2 (l {| l := existT x v; input := input; destination := destination; output := output |})) Hex) in equivocators_transition_item_project eqv_descriptors {| l := existT x v; input := input; destination := destination; output := output |} = Some (Some {| l := lx; input := VLSM.input {| l := existT x v; input := input; destination := destination; output := output |}; destination := equivocators_state_project eqv_descriptors (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |}); output := VLSM.output {| l := existT x v; input := input; destination := destination; output := output |} |}, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
Hzero: eqv_descriptors x = Existing 0
Hdest_i: is_singleton_state (IM x) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} x)
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM x) v (s x, input)
Ht: (let (si', om') := vtransition (equivocator_IM x) v (s x, input) in (state_update equivocator_IM s x si', om')) = (destination, output)
Heqv_pr: vtransition (equivocator_vlsm (IM x)) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (s x, VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) = (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}), VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) → ∃ Hex : existing_equivocator_label (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})), equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)∃ Hex : existing_equivocator_label (IM (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |}))) (projT2 (l {| l := existT x v; input := input; destination := destination; output := output |})), let lx := existT x (existing_equivocator_label_extract (IM (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |}))) (projT2 (l {| l := existT x v; input := input; destination := destination; output := output |})) Hex) in equivocators_transition_item_project eqv_descriptors {| l := existT x v; input := input; destination := destination; output := output |} = Some (Some {| l := lx; input := VLSM.input {| l := existT x v; input := input; destination := destination; output := output |}; destination := equivocators_state_project eqv_descriptors (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |}); output := VLSM.output {| l := existT x v; input := input; destination := destination; output := output |} |}, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
Hzero: eqv_descriptors x = Existing 0
Hdest_i: is_singleton_state (IM x) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} x)
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM x) v (s x, input)
Ht: (let (si', om') := vtransition (equivocator_IM x) v (s x, input) in (state_update equivocator_IM s x si', om')) = (destination, output)
Heqv_pr: vtransition (equivocator_vlsm (IM x)) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (s x, VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) = (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}), VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) → ∃ Hex : existing_equivocator_label (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})), equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)vtransition (equivocator_vlsm (IM x)) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (s x, VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) = (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}), VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
Hzero: eqv_descriptors x = Existing 0
Hdest_i: is_singleton_state (IM x) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} x)
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM x) v (s x, input)
Ht: (let (si', om') := vtransition (equivocator_IM x) v (s x, input) in (state_update equivocator_IM s x si', om')) = (destination, output)
Heqv_pr: ∃ Hex : existing_equivocator_label (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})), equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)∃ Hex : existing_equivocator_label (IM (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |}))) (projT2 (l {| l := existT x v; input := input; destination := destination; output := output |})), let lx := existT x (existing_equivocator_label_extract (IM (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |}))) (projT2 (l {| l := existT x v; input := input; destination := destination; output := output |})) Hex) in equivocators_transition_item_project eqv_descriptors {| l := existT x v; input := input; destination := destination; output := output |} = Some (Some {| l := lx; input := VLSM.input {| l := existT x v; input := input; destination := destination; output := output |}; destination := equivocators_state_project eqv_descriptors (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |}); output := VLSM.output {| l := existT x v; input := input; destination := destination; output := output |} |}, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
Hzero: eqv_descriptors x = Existing 0
Hdest_i: is_singleton_state (IM x) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} x)
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM x) v (s x, input)
Ht: (let (si', om') := vtransition (equivocator_IM x) v (s x, input) in (state_update equivocator_IM s x si', om')) = (destination, output)
Heqv_pr: vtransition (equivocator_vlsm (IM x)) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (s x, VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) = (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}), VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) → ∃ Hex : existing_equivocator_label (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})), equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)vtransition (equivocator_vlsm (IM x)) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (s x, VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) = (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}), VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
Hzero: eqv_descriptors x = Existing 0
Hdest_i: is_singleton_state (IM x) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} x)
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM x) v (s x, input)
Ht: (let (si', om') := vtransition (equivocator_IM x) v (s x, input) in (state_update equivocator_IM s x si', om')) = (destination, output)
Heqv_pr: vtransition (equivocator_vlsm (IM x)) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (s x, VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) = (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}), VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) → ∃ Hex : existing_equivocator_label (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})), equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)vtransition (equivocator_vlsm (IM x)) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) v eq_refl) (s x, input) = (destination x, output)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
Hzero: eqv_descriptors x = Existing 0
Hdest_i: is_singleton_state (IM x) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} x)
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM x) v (s x, input)
Ht: (let (si', om') := vtransition (equivocator_IM x) v (s x, input) in (state_update equivocator_IM s x si', om')) = (destination, output)
Heqv_pr: vtransition (equivocator_vlsm (IM x)) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (s x, VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) = (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}), VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) → ∃ Hex : existing_equivocator_label (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})), equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)vtransition (equivocator_vlsm (IM x)) (eq_rect x (λ y : index, vlabel (equivocator_IM y)) v x (eq_sym eq_refl)) (s x, input) = (destination x, output)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
Hzero: eqv_descriptors x = Existing 0
Hdest_i: is_singleton_state (IM x) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} x)
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM x) v (s x, input)
Ht: (let (si', om') := vtransition (equivocator_IM x) v (s x, input) in (state_update equivocator_IM s x si', om')) = (destination, output)
Heqv_pr: vtransition (equivocator_vlsm (IM x)) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (s x, VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) = (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}), VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) → ∃ Hex : existing_equivocator_label (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})), equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)vtransition (equivocator_vlsm (IM x)) v (s x, input) = (destination x, output)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
Hzero: eqv_descriptors x = Existing 0
Hdest_i: is_singleton_state (IM x) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} x)
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM x) v (s x, input)
s0: state
o: option message
Hti: vtransition (equivocator_IM x) v (s x, input) = (s0, o)
Ht: (state_update equivocator_IM s x s0, o) = (destination, output)
Heqv_pr: vtransition (equivocator_vlsm (IM x)) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (s x, VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) = (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}), VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) → ∃ Hex : existing_equivocator_label (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})), equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)vtransition (equivocator_vlsm (IM x)) v (s x, input) = (destination x, output)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
s: composite_state equivocator_IM
s0: state
o: option message
Hti: vtransition (equivocator_IM x) v (s x, input) = (s0, o)
Ht: (state_update equivocator_IM s x s0, o) = (destination, output)vtransition (equivocator_vlsm (IM x)) v (s x, input) = (destination x, output)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
s: composite_state equivocator_IM
s0: state
o: option message
Hti: vtransition (equivocator_IM x) v (s x, input) = (s0, o)
Ht: (state_update equivocator_IM s x s0, o) = (destination, output)
H0: state_update equivocator_IM s x s0 = destination
H1: o = outputvtransition (equivocator_vlsm (IM x)) v (s x, input) = (state_update equivocator_IM s x s0 x, output)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
s: composite_state equivocator_IM
s0: state
o: option message
Hti: vtransition (equivocator_IM x) v (s x, input) = (s0, o)
Ht: (state_update equivocator_IM s x s0, o) = (destination, output)
H0: state_update equivocator_IM s x s0 = destination
H1: o = outputvtransition (equivocator_vlsm (IM x)) v (s x, input) = (s0, output)assumption.message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
x: index
v: vlabel (equivocator_IM x)
input, output: option message
s: composite_state equivocator_IM
s0: state
Ht: (state_update equivocator_IM s x s0, output) = (state_update equivocator_IM s x s0, output)
Hti: vtransition (equivocator_IM x) v (s x, input) = (s0, output)vtransition (equivocator_vlsm (IM x)) v (s x, input) = (s0, output)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
Hzero: eqv_descriptors x = Existing 0
Hdest_i: is_singleton_state (IM x) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} x)
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM x) v (s x, input)
Ht: (let (si', om') := vtransition (equivocator_IM x) v (s x, input) in (state_update equivocator_IM s x si', om')) = (destination, output)
Heqv_pr: ∃ Hex : existing_equivocator_label (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})), equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)∃ Hex : existing_equivocator_label (IM (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |}))) (projT2 (l {| l := existT x v; input := input; destination := destination; output := output |})), let lx := existT x (existing_equivocator_label_extract (IM (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |}))) (projT2 (l {| l := existT x v; input := input; destination := destination; output := output |})) Hex) in equivocators_transition_item_project eqv_descriptors {| l := existT x v; input := input; destination := destination; output := output |} = Some (Some {| l := lx; input := VLSM.input {| l := existT x v; input := input; destination := destination; output := output |}; destination := equivocators_state_project eqv_descriptors (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |}); output := VLSM.output {| l := existT x v; input := input; destination := destination; output := output |} |}, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
Hzero: eqv_descriptors x = Existing 0
Hdest_i: is_singleton_state (IM x) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} x)
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM x) v (s x, input)
Ht: (let (si', om') := vtransition (equivocator_IM x) v (s x, input) in (state_update equivocator_IM s x si', om')) = (destination, output)
Hex: existing_equivocator_label (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}))
Heqv_pr: equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)∃ Hex : existing_equivocator_label (IM (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |}))) (projT2 (l {| l := existT x v; input := input; destination := destination; output := output |})), let lx := existT x (existing_equivocator_label_extract (IM (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |}))) (projT2 (l {| l := existT x v; input := input; destination := destination; output := output |})) Hex) in equivocators_transition_item_project eqv_descriptors {| l := existT x v; input := input; destination := destination; output := output |} = Some (Some {| l := lx; input := VLSM.input {| l := existT x v; input := input; destination := destination; output := output |}; destination := equivocators_state_project eqv_descriptors (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |}); output := VLSM.output {| l := existT x v; input := input; destination := destination; output := output |} |}, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
Hzero: eqv_descriptors x = Existing 0
Hdest_i: is_singleton_state (IM x) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} x)
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM x) v (s x, input)
Ht: (let (si', om') := vtransition (equivocator_IM x) v (s x, input) in (state_update equivocator_IM s x si', om')) = (destination, output)
Hex: existing_equivocator_label (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}))
Heqv_pr: equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)let lx := existT x (existing_equivocator_label_extract (IM (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |}))) (projT2 (l {| l := existT x v; input := input; destination := destination; output := output |})) Hex) in equivocators_transition_item_project eqv_descriptors {| l := existT x v; input := input; destination := destination; output := output |} = Some (Some {| l := lx; input := VLSM.input {| l := existT x v; input := input; destination := destination; output := output |}; destination := equivocators_state_project eqv_descriptors (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |}); output := VLSM.output {| l := existT x v; input := input; destination := destination; output := output |} |}, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
Hzero: eqv_descriptors x = Existing 0
Hdest_i: is_singleton_state (IM x) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} x)
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM x) v (s x, input)
Ht: (let (si', om') := vtransition (equivocator_IM x) v (s x, input) in (state_update equivocator_IM s x si', om')) = (destination, output)
Hex: existing_equivocator_label (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}))
Heqv_pr: equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)match equivocator_vlsm_transition_item_project (IM (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |}))) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (eqv_descriptors (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |}))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |})) (l item'); input := VLSM.input {| l := existT x v; input := input; destination := destination; output := output |}; destination := equivocators_state_project eqv_descriptors (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |}); output := VLSM.output {| l := existT x v; input := input; destination := destination; output := output |} |}, equivocator_descriptors_update eqv_descriptors (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |})) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update eqv_descriptors (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |})) deqv') | None => None end = Some (Some {| l := existT x (existing_equivocator_label_extract (IM (projT1 (l {| l := existT x v; input := input; destination := destination; output := output |}))) (projT2 (l {| l := existT x v; input := input; destination := destination; output := output |})) Hex); input := VLSM.input {| l := existT x v; input := input; destination := destination; output := output |}; destination := equivocators_state_project eqv_descriptors (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |}); output := VLSM.output {| l := existT x v; input := input; destination := destination; output := output |} |}, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
Hzero: eqv_descriptors x = Existing 0
Hdest_i: is_singleton_state (IM x) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} x)
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM x) v (s x, input)
Ht: (let (si', om') := vtransition (equivocator_IM x) v (s x, input) in (state_update equivocator_IM s x si', om')) = (destination, output)
Hex: existing_equivocator_label (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}))
Heqv_pr: equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)match equivocator_vlsm_transition_item_project (IM (projT1 (existT x v))) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (eqv_descriptors (projT1 (existT x v))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (existT x v)) (let (l, _, _, _) := item' in l); input := VLSM.input {| l := existT x v; input := input; destination := destination; output := output |}; destination := equivocators_state_project eqv_descriptors (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |}); output := VLSM.output {| l := existT x v; input := input; destination := destination; output := output |} |}, equivocator_descriptors_update eqv_descriptors (projT1 (existT x v)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update eqv_descriptors (projT1 (existT x v)) deqv') | None => None end = Some (Some {| l := existT x (existing_equivocator_label_extract (IM (projT1 (existT x v))) (projT2 (existT x v)) Hex); input := VLSM.input {| l := existT x v; input := input; destination := destination; output := output |}; destination := equivocators_state_project eqv_descriptors (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |}); output := VLSM.output {| l := existT x v; input := input; destination := destination; output := output |} |}, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
Hzero: eqv_descriptors x = Existing 0
Hdest_i: is_singleton_state (IM x) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} x)
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM x) v (s x, input)
Ht: (let (si', om') := vtransition (equivocator_IM x) v (s x, input) in (state_update equivocator_IM s x si', om')) = (destination, output)
Hex: existing_equivocator_label (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}))
Heqv_pr: equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)match equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (eqv_descriptors x) with | Some (Some item', deqv') => Some (Some {| l := existT x (let (l, _, _, _) := item' in l); input := VLSM.input {| l := existT x v; input := input; destination := destination; output := output |}; destination := equivocators_state_project eqv_descriptors (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |}); output := VLSM.output {| l := existT x v; input := input; destination := destination; output := output |} |}, equivocator_descriptors_update eqv_descriptors x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update eqv_descriptors x deqv') | None => None end = Some (Some {| l := existT x (existing_equivocator_label_extract (IM x) (projT2 (existT x v)) Hex); input := VLSM.input {| l := existT x v; input := input; destination := destination; output := output |}; destination := equivocators_state_project eqv_descriptors (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |}); output := VLSM.output {| l := existT x v; input := input; destination := destination; output := output |} |}, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
Hzero: eqv_descriptors x = Existing 0
Hdest_i: is_singleton_state (IM x) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} x)
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM x) v (s x, input)
Ht: (let (si', om') := vtransition (equivocator_IM x) v (s x, input) in (state_update equivocator_IM s x si', om')) = (destination, output)
Hex: existing_equivocator_label (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}))
Heqv_pr: equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)match equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) with | Some (Some item', deqv') => Some (Some {| l := existT x (let (l, _, _, _) := item' in l); input := VLSM.input {| l := existT x v; input := input; destination := destination; output := output |}; destination := equivocators_state_project eqv_descriptors (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |}); output := VLSM.output {| l := existT x v; input := input; destination := destination; output := output |} |}, equivocator_descriptors_update eqv_descriptors x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update eqv_descriptors x deqv') | None => None end = Some (Some {| l := existT x (existing_equivocator_label_extract (IM x) (projT2 (existT x v)) Hex); input := VLSM.input {| l := existT x v; input := input; destination := destination; output := output |}; destination := equivocators_state_project eqv_descriptors (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |}); output := VLSM.output {| l := existT x v; input := input; destination := destination; output := output |} |}, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
Hzero: eqv_descriptors x = Existing 0
Hdest_i: is_singleton_state (IM x) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} x)
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM x) v (s x, input)
Ht: (let (si', om') := vtransition (equivocator_IM x) v (s x, input) in (state_update equivocator_IM s x si', om')) = (destination, output)
Hex: existing_equivocator_label (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}))
Heqv_pr: equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)Some (Some {| l := existT x (existing_equivocator_label_extract (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex); input := VLSM.input {| l := existT x v; input := input; destination := destination; output := output |}; destination := equivocators_state_project eqv_descriptors (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |}); output := VLSM.output {| l := existT x v; input := input; destination := destination; output := output |} |}, equivocator_descriptors_update eqv_descriptors x (Existing 0)) = Some (Some {| l := existT x (existing_equivocator_label_extract (IM x) (projT2 (existT x v)) Hex); input := VLSM.input {| l := existT x v; input := input; destination := destination; output := output |}; destination := equivocators_state_project eqv_descriptors (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |}); output := VLSM.output {| l := existT x v; input := input; destination := destination; output := output |} |}, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
Hzero: eqv_descriptors x = Existing 0
Hdest_i: is_singleton_state (IM x) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} x)
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM x) v (s x, input)
Ht: (let (si', om') := vtransition (equivocator_IM x) v (s x, input) in (state_update equivocator_IM s x si', om')) = (destination, output)
Hex: existing_equivocator_label (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}))
Heqv_pr: equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)Some (Some {| l := existT x (existing_equivocator_label_extract (IM x) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) v eq_refl) Hex); input := input; destination := equivocators_state_project eqv_descriptors destination; output := output |}, equivocator_descriptors_update eqv_descriptors x (Existing 0)) = Some (Some {| l := existT x (existing_equivocator_label_extract (IM x) v Hex); input := input; destination := equivocators_state_project eqv_descriptors destination; output := output |}, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
Hzero: eqv_descriptors x = Existing 0
Hdest_i: is_singleton_state (IM x) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} x)
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM x) v (s x, input)
Ht: (let (si', om') := vtransition (equivocator_IM x) v (s x, input) in (state_update equivocator_IM s x si', om')) = (destination, output)
Hex: existing_equivocator_label (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}))
Heqv_pr: equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)equivocator_descriptors_update eqv_descriptors x (Existing 0) = eqv_descriptorsassumption. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
x: index
v: vlabel (equivocator_IM x)
input: option message
destination: state
output: option message
Hzero: eqv_descriptors x = Existing 0
Hdest_i: is_singleton_state (IM x) (VLSM.destination {| l := existT x v; input := input; destination := destination; output := output |} x)
s: composite_state equivocator_IM
Hv: vvalid (equivocator_IM x) v (s x, input)
Ht: (let (si', om') := vtransition (equivocator_IM x) v (s x, input) in (state_update equivocator_IM s x si', om')) = (destination, output)
Hex: existing_equivocator_label (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}))
Heqv_pr: equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) (Existing 0) = Some (Some {| l := existing_equivocator_label_extract (IM x) (l (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) Hex; input := VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}); destination := equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |})) (Existing 0); output := VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT x v; input := input; destination := destination; output := output |}) |}, Existing 0)eqv_descriptors x = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)∃ equivocators : Common.equivocator_descriptors IM, not_equivocating_equivocator_descriptors IM equivocators (destination item) ∧ (∃ equivocators' : equivocator_descriptors, let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs)) in let sx := equivocators_state_project equivocators (destination item) in proper_equivocator_descriptors equivocators' s ∧ equivocators_transition_item_project equivocators item = Some (Some {| l := lx; input := input item; destination := sx; output := output item |}, equivocators'))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)∃ equivocators : Common.equivocator_descriptors IM, not_equivocating_equivocator_descriptors IM equivocators (destination item) ∧ (∃ equivocators' : equivocator_descriptors, let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs)) in let sx := equivocators_state_project equivocators (destination item) in proper_equivocator_descriptors equivocators' s ∧ equivocators_transition_item_project equivocators item = Some (Some {| l := lx; input := input item; destination := sx; output := output item |}, equivocators'))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hproject: vvalid (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)), input (composite_transition_item_projection equivocator_IM item)) → vtransition (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)), input (composite_transition_item_projection equivocator_IM item)) = (destination (composite_transition_item_projection equivocator_IM item), output (composite_transition_item_projection equivocator_IM item)) → proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item))) ∧ (∃ dest_eqv : MachineDescriptor (IM (projT1 (l item))), existing_descriptor (IM (projT1 (l item))) dest_eqv (destination (composite_transition_item_projection equivocator_IM item)) ∧ equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) dest_eqv = Some ( Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) dest_eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))))∃ equivocators : Common.equivocator_descriptors IM, not_equivocating_equivocator_descriptors IM equivocators (destination item) ∧ (∃ equivocators' : equivocator_descriptors, let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs)) in let sx := equivocators_state_project equivocators (destination item) in proper_equivocator_descriptors equivocators' s ∧ equivocators_transition_item_project equivocators item = Some (Some {| l := lx; input := input item; destination := sx; output := output item |}, equivocators'))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hproject: vvalid (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)), input (composite_transition_item_projection equivocator_IM item)) → vtransition (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)), input (composite_transition_item_projection equivocator_IM item)) = (destination (composite_transition_item_projection equivocator_IM item), output (composite_transition_item_projection equivocator_IM item)) → proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item))) ∧ (∃ dest_eqv : MachineDescriptor (IM (projT1 (l item))), existing_descriptor (IM (projT1 (l item))) dest_eqv (destination (composite_transition_item_projection equivocator_IM item)) ∧ equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) dest_eqv = Some ( Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) dest_eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))))vvalid (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)), input (composite_transition_item_projection equivocator_IM item))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hproject: vtransition (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)), input (composite_transition_item_projection equivocator_IM item)) = (destination (composite_transition_item_projection equivocator_IM item), output (composite_transition_item_projection equivocator_IM item)) → proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item))) ∧ (∃ dest_eqv : MachineDescriptor (IM (projT1 (l item))), existing_descriptor (IM (projT1 (l item))) dest_eqv (destination (composite_transition_item_projection equivocator_IM item)) ∧ equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) dest_eqv = Some ( Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) dest_eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))))∃ equivocators : Common.equivocator_descriptors IM, not_equivocating_equivocator_descriptors IM equivocators (destination item) ∧ (∃ equivocators' : equivocator_descriptors, let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs)) in let sx := equivocators_state_project equivocators (destination item) in proper_equivocator_descriptors equivocators' s ∧ equivocators_transition_item_project equivocators item = Some ( Some {| l := lx; input := input item; destination := sx; output := output item |}, equivocators'))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hproject: vvalid (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)), input (composite_transition_item_projection equivocator_IM item)) → vtransition (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)), input (composite_transition_item_projection equivocator_IM item)) = (destination (composite_transition_item_projection equivocator_IM item), output (composite_transition_item_projection equivocator_IM item)) → proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item))) ∧ (∃ dest_eqv : MachineDescriptor (IM (projT1 (l item))), existing_descriptor (IM (projT1 (l item))) dest_eqv (destination (composite_transition_item_projection equivocator_IM item)) ∧ equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) dest_eqv = Some ( Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) dest_eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))))vvalid (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)), input (composite_transition_item_projection equivocator_IM item))message, index: Type
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hv: composite_valid equivocator_IM (l item) (s, input item)vvalid (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)), input (composite_transition_item_projection equivocator_IM item))assumption.message, index: Type
IM: index → VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hv: composite_valid equivocator_IM (existT (projT1 (l item)) (projT2 (l item))) (s, input item)vvalid (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)), input (composite_transition_item_projection equivocator_IM item))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hproject: vtransition (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)), input (composite_transition_item_projection equivocator_IM item)) = (destination (composite_transition_item_projection equivocator_IM item), output (composite_transition_item_projection equivocator_IM item)) → proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item))) ∧ (∃ dest_eqv : MachineDescriptor (IM (projT1 (l item))), existing_descriptor (IM (projT1 (l item))) dest_eqv (destination (composite_transition_item_projection equivocator_IM item)) ∧ equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) dest_eqv = Some ( Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) dest_eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))))∃ equivocators : Common.equivocator_descriptors IM, not_equivocating_equivocator_descriptors IM equivocators (destination item) ∧ (∃ equivocators' : equivocator_descriptors, let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs)) in let sx := equivocators_state_project equivocators (destination item) in proper_equivocator_descriptors equivocators' s ∧ equivocators_transition_item_project equivocators item = Some (Some {| l := lx; input := input item; destination := sx; output := output item |}, equivocators'))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hproject: vtransition (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)), input (composite_transition_item_projection equivocator_IM item)) = (destination (composite_transition_item_projection equivocator_IM item), output (composite_transition_item_projection equivocator_IM item)) → proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item))) ∧ (∃ dest_eqv : MachineDescriptor (IM (projT1 (l item))), existing_descriptor (IM (projT1 (l item))) dest_eqv (destination (composite_transition_item_projection equivocator_IM item)) ∧ equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) dest_eqv = Some ( Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) dest_eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))))vtransition (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)), input (composite_transition_item_projection equivocator_IM item)) = (destination (composite_transition_item_projection equivocator_IM item), output (composite_transition_item_projection equivocator_IM item))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hproject: proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item))) ∧ (∃ dest_eqv : MachineDescriptor (IM (projT1 (l item))), existing_descriptor (IM (projT1 (l item))) dest_eqv (destination (composite_transition_item_projection equivocator_IM item)) ∧ equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) dest_eqv = Some ( Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) dest_eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))))∃ equivocators : Common.equivocator_descriptors IM, not_equivocating_equivocator_descriptors IM equivocators (destination item) ∧ (∃ equivocators' : equivocator_descriptors, let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs)) in let sx := equivocators_state_project equivocators (destination item) in proper_equivocator_descriptors equivocators' s ∧ equivocators_transition_item_project equivocators item = Some ( Some {| l := lx; input := input item; destination := sx; output := output item |}, equivocators'))apply composite_transition_project_active in Ht; assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hproject: vtransition (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)), input (composite_transition_item_projection equivocator_IM item)) = (destination (composite_transition_item_projection equivocator_IM item), output (composite_transition_item_projection equivocator_IM item)) → proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item))) ∧ (∃ dest_eqv : MachineDescriptor (IM (projT1 (l item))), existing_descriptor (IM (projT1 (l item))) dest_eqv (destination (composite_transition_item_projection equivocator_IM item)) ∧ equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) dest_eqv = Some ( Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) dest_eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))))vtransition (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)), input (composite_transition_item_projection equivocator_IM item)) = (destination (composite_transition_item_projection equivocator_IM item), output (composite_transition_item_projection equivocator_IM item))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hproject: proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item))) ∧ (∃ dest_eqv : MachineDescriptor (IM (projT1 (l item))), existing_descriptor (IM (projT1 (l item))) dest_eqv (destination (composite_transition_item_projection equivocator_IM item)) ∧ equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) dest_eqv = Some ( Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) dest_eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))))∃ equivocators : Common.equivocator_descriptors IM, not_equivocating_equivocator_descriptors IM equivocators (destination item) ∧ (∃ equivocators' : equivocator_descriptors, let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs)) in let sx := equivocators_state_project equivocators (destination item) in proper_equivocator_descriptors equivocators' s ∧ equivocators_transition_item_project equivocators item = Some (Some {| l := lx; input := input item; destination := sx; output := output item |}, equivocators'))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))∃ equivocators : Common.equivocator_descriptors IM, not_equivocating_equivocator_descriptors IM equivocators (destination item) ∧ (∃ equivocators' : equivocator_descriptors, let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs)) in let sx := equivocators_state_project equivocators (destination item) in proper_equivocator_descriptors equivocators' s ∧ equivocators_transition_item_project equivocators item = Some (Some {| l := lx; input := input item; destination := sx; output := output item |}, equivocators'))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))not_equivocating_equivocator_descriptors IM (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) eqv) (destination item) ∧ (∃ equivocators' : equivocator_descriptors, let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs)) in let sx := equivocators_state_project (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) eqv) (destination item) in proper_equivocator_descriptors equivocators' s ∧ equivocators_transition_item_project (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) eqv) item = Some (Some {| l := lx; input := input item; destination := sx; output := output item |}, equivocators'))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))not_equivocating_equivocator_descriptors IM (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) eqv) (destination item)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))∃ equivocators' : equivocator_descriptors, let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs)) in let sx := equivocators_state_project (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) eqv) (destination item) in proper_equivocator_descriptors equivocators' s ∧ equivocators_transition_item_project (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) eqv) item = Some (Some {| l := lx; input := input item; destination := sx; output := output item |}, equivocators')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))not_equivocating_equivocator_descriptors IM (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) eqv) (destination item)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))
i: indexexisting_descriptor (IM i) (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) eqv i) (destination item i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))
i: indexexisting_descriptor (IM i) (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) eqv i) (destination item i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))
i: index
e: i = projT1 (l item)existing_descriptor (IM i) (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) eqv i) (destination item i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))
i: index
n: i ≠ projT1 (l item)existing_descriptor (IM i) (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) eqv i) (destination item i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))
i: index
e: i = projT1 (l item)existing_descriptor (IM i) (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) eqv i) (destination item i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))existing_descriptor (IM (projT1 (l item))) (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) eqv (projT1 (l item))) (destination item (projT1 (l item)))assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))existing_descriptor (IM (projT1 (l item))) eqv (destination item (projT1 (l item)))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))
i: index
n: i ≠ projT1 (l item)existing_descriptor (IM i) (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) eqv i) (destination item i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))
i: index
n: i ≠ projT1 (l item)existing_descriptor (IM i) (zero_descriptor IM i) (destination item i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))
i: index
n: i ≠ projT1 (l item)is_Some (equivocator_state_project (destination item i) 0)eexists; reflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))
i: index
n: i ≠ projT1 (l item)is_Some (Some (equivocator_state_zero (destination item i)))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))∃ equivocators' : equivocator_descriptors, let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs)) in let sx := equivocators_state_project (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) eqv) (destination item) in proper_equivocator_descriptors equivocators' s ∧ equivocators_transition_item_project (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) eqv) item = Some (Some {| l := lx; input := input item; destination := sx; output := output item |}, equivocators')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs)) in let sx := equivocators_state_project (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) eqv) (destination item) in proper_equivocator_descriptors (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) (equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))) s ∧ equivocators_transition_item_project (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) eqv) item = Some (Some {| l := lx; input := input item; destination := sx; output := output item |}, equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) (equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))proper_equivocator_descriptors (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) (equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))) smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))equivocators_transition_item_project (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) eqv) item = Some (Some {| l := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs)); input := input item; destination := equivocators_state_project (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) eqv) (destination item); output := output item |}, equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) (equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))proper_equivocator_descriptors (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) (equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))) smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))
i: indexproper_descriptor (IM i) (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) (equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))) i) (s i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))
i: indexproper_descriptor (IM i) (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) (equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))) i) (s i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))
i: index
e: i = projT1 (l item)proper_descriptor (IM i) (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) (equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))) i) (s i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))
i: index
n: i ≠ projT1 (l item)proper_descriptor (IM i) (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) (equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))) i) (s i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))
i: index
e: i = projT1 (l item)proper_descriptor (IM i) (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) (equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))) i) (s i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))proper_descriptor (IM (projT1 (l item))) (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) (equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))) (projT1 (l item))) (s (projT1 (l item)))assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))proper_descriptor (IM (projT1 (l item))) (equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))) (s (projT1 (l item)))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))
i: index
n: i ≠ projT1 (l item)proper_descriptor (IM i) (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) (equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))) i) (s i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))
i: index
n: i ≠ projT1 (l item)proper_descriptor (IM i) (zero_descriptor IM i) (s i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))
i: index
n: i ≠ projT1 (l item)is_Some (equivocator_state_project (s i) 0)eexists;reflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))
i: index
n: i ≠ projT1 (l item)is_Some (Some (equivocator_state_zero (s i)))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))equivocators_transition_item_project (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) eqv) item = Some (Some {| l := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs)); input := input item; destination := equivocators_state_project (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) eqv) (destination item); output := output item |}, equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) (equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) eqv (projT1 (l item))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) eqv) (destination item); output := output item |}, equivocator_descriptors_update (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) eqv) (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) eqv) (projT1 (l item)) deqv') | None => None end = Some (Some {| l := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs)); input := input item; destination := equivocators_state_project (equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) eqv) (destination item); output := output item |}, equivocator_descriptors_update (zero_descriptor IM) (projT1 (l item)) (equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) eqv (projT1 (l item))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) eqv) (destination item); output := output item |}, Common.equivocator_descriptors_update IM (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) eqv) (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, Common.equivocator_descriptors_update IM (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) eqv) (projT1 (l item)) deqv') | None => None end = Some (Some {| l := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs)); input := input item; destination := equivocators_state_project (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) eqv) (destination item); output := output item |}, Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) (equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))Some (Some {| l := existT (projT1 (l item)) (l {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}); input := input item; destination := equivocators_state_project (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) eqv) (destination item); output := output item |}, Common.equivocator_descriptors_update IM (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) eqv) (projT1 (l item)) (equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))) = Some (Some {| l := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs)); input := input item; destination := equivocators_state_project (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) eqv) (destination item); output := output item |}, Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) (equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))(Some {| l := existT (projT1 (l item)) (l {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}); input := input item; destination := equivocators_state_project (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) eqv) (destination item); output := output item |}, Common.equivocator_descriptors_update IM (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) eqv) (projT1 (l item)) (equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))) = (Some {| l := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs)); input := input item; destination := equivocators_state_project (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) eqv) (destination item); output := output item |}, Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) (equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))))apply equivocator_descriptors_update_twice. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
item: composite_transition_item equivocator_IM
s: composite_state equivocator_IM
Hs: proper_existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)) (s (projT1 (l item)))
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Heqv': proper_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (s (projT1 (l item)))
eqv: MachineDescriptor (IM (projT1 (l item)))
Heqv: existing_descriptor (IM (projT1 (l item))) eqv (destination (composite_transition_item_projection equivocator_IM item))
Hproject: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) eqv = Some (Some {| l := existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) (existing_equivocator_label_forget_proper (IM (projT1 (l item))) Hs); input := input (composite_transition_item_projection equivocator_IM item); destination := equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) eqv; output := output (composite_transition_item_projection equivocator_IM item) |}, equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))Common.equivocator_descriptors_update IM (Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) eqv) (projT1 (l item)) (equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))) = Common.equivocator_descriptors_update IM (zero_descriptor IM) (projT1 (l item)) (equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
i:= projT1 (l item): index
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (destination item i)∃ (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_transition_item_project eqv_descriptors item = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT i (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' i = equivocator_label_descriptor (projT2 (l item)) | None => True end ∧ (∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l item) (s, input item) → composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item) → proper_descriptor (IM i) (eqv_descriptors' i) (s i) ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors i (eqv_descriptors' i) ∧ s = state_update equivocator_IM (destination item) i (s i) ∧ previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (eqv_descriptors' i) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s end)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
i:= projT1 (l item): index
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (destination item i)∃ (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_transition_item_project eqv_descriptors item = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT i (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' i = equivocator_label_descriptor (projT2 (l item)) | None => True end ∧ (∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l item) (s, input item) → composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item) → proper_descriptor (IM i) (eqv_descriptors' i) (s i) ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors i (eqv_descriptors' i) ∧ s = state_update equivocator_IM (destination item) i (s i) ∧ previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (eqv_descriptors' i) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s end)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
i:= projT1 (l item): index
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (destination item i)
oitemi: option (vtransition_item (IM i))
eqv_descriptorsi': MachineDescriptor (IM i)
Hoitemi: equivocator_vlsm_transition_item_project (IM i) (composite_transition_item_projection equivocator_IM item) (eqv_descriptors i) = Some (oitemi, eqv_descriptorsi')
Hitemx: match oitemi with | Some itemx => (∃ Hex : existing_equivocator_label (IM i) (l (composite_transition_item_projection equivocator_IM item)), l itemx = existing_equivocator_label_extract (IM i) (l (composite_transition_item_projection equivocator_IM item)) Hex) ∧ input (composite_transition_item_projection equivocator_IM item) = input itemx ∧ output (composite_transition_item_projection equivocator_IM item) = output itemx ∧ equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) (eqv_descriptors i) = destination itemx ∧ eqv_descriptorsi' = equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)) | None => True end
Hchar: ∀ s : vstate (equivocator_vlsm (IM i)), vvalid (equivocator_vlsm (IM i)) (l (composite_transition_item_projection equivocator_IM item)) (s, input (composite_transition_item_projection equivocator_IM item)) → vtransition (equivocator_vlsm (IM i)) (l (composite_transition_item_projection equivocator_IM item)) (s, input (composite_transition_item_projection equivocator_IM item)) = (destination (composite_transition_item_projection equivocator_IM item), output (composite_transition_item_projection equivocator_IM item)) → proper_descriptor (IM i) eqv_descriptorsi' s ∧ previous_state_descriptor_prop (IM i) (eqv_descriptors i) s eqv_descriptorsi' ∧ match oitemi with | Some itemx => ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project s eqv_descriptorsi' → vvalid (IM i) (l itemx) (sx, input itemx) ∧ vtransition (IM i) (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) (eqv_descriptors i) = equivocator_state_descriptor_project s eqv_descriptorsi' end∃ (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_transition_item_project eqv_descriptors item = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT i (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' i = equivocator_label_descriptor (projT2 (l item)) | None => True end ∧ (∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l item) (s, input item) → composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item) → proper_descriptor (IM i) (eqv_descriptors' i) (s i) ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors i (eqv_descriptors' i) ∧ s = state_update equivocator_IM (destination item) i (s i) ∧ previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (eqv_descriptors' i) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s end)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_descriptor (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (destination item (projT1 (l item)))
oitemi: option (vtransition_item (IM (projT1 (l item))))
eqv_descriptorsi': MachineDescriptor (IM (projT1 (l item)))
Hoitemi: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (eqv_descriptors (projT1 (l item))) = Some (oitemi, eqv_descriptorsi')
Hitemx: match oitemi with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)), l itemx = existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) Hex) ∧ input (composite_transition_item_projection equivocator_IM item) = input itemx ∧ output (composite_transition_item_projection equivocator_IM item) = output itemx ∧ equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) (eqv_descriptors (projT1 (l item))) = destination itemx ∧ eqv_descriptorsi' = equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)) | None => True end
Hchar: ∀ s : vstate (equivocator_vlsm (IM (projT1 (l item)))), vvalid (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s, input (composite_transition_item_projection equivocator_IM item)) → vtransition (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s, input (composite_transition_item_projection equivocator_IM item)) = (destination (composite_transition_item_projection equivocator_IM item), output (composite_transition_item_projection equivocator_IM item)) → proper_descriptor (IM (projT1 (l item))) eqv_descriptorsi' s ∧ previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) s eqv_descriptorsi' ∧ match oitemi with | Some itemx => ∀ sx : vstate (IM (projT1 (l item))), sx = equivocator_state_descriptor_project s eqv_descriptorsi' → vvalid (IM (projT1 (l item))) (l itemx) (sx, input itemx) ∧ vtransition (IM (projT1 (l item))) (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) (eqv_descriptors (projT1 (l item))) = equivocator_state_descriptor_project s eqv_descriptorsi' end∃ (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_transition_item_project eqv_descriptors item = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end ∧ (∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l item) (s, input item) → composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item) → proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item))) ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) ∧ s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item))) ∧ previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s end)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_descriptor (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (destination item (projT1 (l item)))
oitemi: option (vtransition_item (IM (projT1 (l item))))
eqv_descriptorsi': MachineDescriptor (IM (projT1 (l item)))
Hoitemi: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (eqv_descriptors (projT1 (l item))) = Some (oitemi, eqv_descriptorsi')
Hitemx: match oitemi with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)), l itemx = existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) Hex) ∧ input (composite_transition_item_projection equivocator_IM item) = input itemx ∧ output (composite_transition_item_projection equivocator_IM item) = output itemx ∧ equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) (eqv_descriptors (projT1 (l item))) = destination itemx ∧ eqv_descriptorsi' = equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)) | None => True end
Hchar: ∀ s : vstate (equivocator_vlsm (IM (projT1 (l item)))), vvalid (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s, input (composite_transition_item_projection equivocator_IM item)) → vtransition (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s, input (composite_transition_item_projection equivocator_IM item)) = (destination (composite_transition_item_projection equivocator_IM item), output (composite_transition_item_projection equivocator_IM item)) → proper_descriptor (IM (projT1 (l item))) eqv_descriptorsi' s ∧ previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) s eqv_descriptorsi' ∧ match oitemi with | Some itemx => ∀ sx : vstate (IM (projT1 (l item))), sx = equivocator_state_descriptor_project s eqv_descriptorsi' → vvalid (IM (projT1 (l item))) (l itemx) (sx, input itemx) ∧ vtransition (IM (projT1 (l item))) (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) (eqv_descriptors (projT1 (l item))) = equivocator_state_descriptor_project s eqv_descriptorsi' end∃ (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (eqv_descriptors (projT1 (l item))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |}, equivocator_descriptors_update eqv_descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update eqv_descriptors (projT1 (l item)) deqv') | None => None end = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end ∧ (∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l item) (s, input item) → composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item) → proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item))) ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) ∧ s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item))) ∧ previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s end)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_descriptor (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (destination item (projT1 (l item)))
oitemi: option (vtransition_item (IM (projT1 (l item))))
eqv_descriptorsi': MachineDescriptor (IM (projT1 (l item)))
Hoitemi: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (eqv_descriptors (projT1 (l item))) = Some (oitemi, eqv_descriptorsi')
Hitemx: match oitemi with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)), l itemx = existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) Hex) ∧ input (composite_transition_item_projection equivocator_IM item) = input itemx ∧ output (composite_transition_item_projection equivocator_IM item) = output itemx ∧ equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) (eqv_descriptors (projT1 (l item))) = destination itemx ∧ eqv_descriptorsi' = equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)) | None => True end
Hchar: ∀ s : vstate (equivocator_vlsm (IM (projT1 (l item)))), vvalid (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s, input (composite_transition_item_projection equivocator_IM item)) → vtransition (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s, input (composite_transition_item_projection equivocator_IM item)) = (destination (composite_transition_item_projection equivocator_IM item), output (composite_transition_item_projection equivocator_IM item)) → proper_descriptor (IM (projT1 (l item))) eqv_descriptorsi' s ∧ previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) s eqv_descriptorsi' ∧ match oitemi with | Some itemx => ∀ sx : vstate (IM (projT1 (l item))), sx = equivocator_state_descriptor_project s eqv_descriptorsi' → vvalid (IM (projT1 (l item))) (l itemx) (sx, input itemx) ∧ vtransition (IM (projT1 (l item))) (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) (eqv_descriptors (projT1 (l item))) = equivocator_state_descriptor_project s eqv_descriptorsi' end∃ (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitemi with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |}, equivocator_descriptors_update eqv_descriptors (projT1 (l item)) eqv_descriptorsi') | None => Some (None, equivocator_descriptors_update eqv_descriptors (projT1 (l item)) eqv_descriptorsi') end = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end ∧ (∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l item) (s, input item) → composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item) → proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item))) ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) ∧ s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item))) ∧ previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s end)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_descriptor (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (destination item (projT1 (l item)))
oitemi: option (vtransition_item (IM (projT1 (l item))))
eqv_descriptorsi': MachineDescriptor (IM (projT1 (l item)))
Hitemx: match oitemi with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)), l itemx = existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) Hex) ∧ input (composite_transition_item_projection equivocator_IM item) = input itemx ∧ output (composite_transition_item_projection equivocator_IM item) = output itemx ∧ equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) (eqv_descriptors (projT1 (l item))) = destination itemx ∧ eqv_descriptorsi' = equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item)) | None => True end
Hchar: ∀ s : vstate (equivocator_vlsm (IM (projT1 (l item)))), vvalid (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s, input (composite_transition_item_projection equivocator_IM item)) → vtransition (equivocator_vlsm (IM (projT1 (l item)))) (l (composite_transition_item_projection equivocator_IM item)) (s, input (composite_transition_item_projection equivocator_IM item)) = (destination (composite_transition_item_projection equivocator_IM item), output (composite_transition_item_projection equivocator_IM item)) → proper_descriptor (IM (projT1 (l item))) eqv_descriptorsi' s ∧ previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) s eqv_descriptorsi' ∧ match oitemi with | Some itemx => ∀ sx : vstate (IM (projT1 (l item))), sx = equivocator_state_descriptor_project s eqv_descriptorsi' → vvalid (IM (projT1 (l item))) (l itemx) (sx, input itemx) ∧ vtransition (IM (projT1 (l item))) (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) (eqv_descriptors (projT1 (l item))) = equivocator_state_descriptor_project s eqv_descriptorsi' end∃ (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitemi with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |}, equivocator_descriptors_update eqv_descriptors (projT1 (l item)) eqv_descriptorsi') | None => Some (None, equivocator_descriptors_update eqv_descriptors (projT1 (l item)) eqv_descriptorsi') end = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end ∧ (∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l item) (s, input item) → composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item) → proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item))) ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) ∧ s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item))) ∧ previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s end)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
l: label
input: option message
destination: state
output: option message
Hproper: proper_descriptor (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) (eqv_descriptors (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) (VLSM.destination {| l := l; input := input; destination := destination; output := output |} (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})))
oitemi: option (vtransition_item (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))))
eqv_descriptorsi': MachineDescriptor (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})))
Hitemx: match oitemi with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) (VLSM.l (composite_transition_item_projection equivocator_IM {| l := l; input := input; destination := destination; output := output |})), VLSM.l itemx = existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) (VLSM.l (composite_transition_item_projection equivocator_IM {| l := l; input := input; destination := destination; output := output |})) Hex) ∧ VLSM.input (composite_transition_item_projection equivocator_IM {| l := l; input := input; destination := destination; output := output |}) = VLSM.input itemx ∧ VLSM.output (composite_transition_item_projection equivocator_IM {| l := l; input := input; destination := destination; output := output |}) = VLSM.output itemx ∧ equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := l; input := input; destination := destination; output := output |})) (eqv_descriptors (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) = VLSM.destination itemx ∧ eqv_descriptorsi' = equivocator_label_descriptor (VLSM.l (composite_transition_item_projection equivocator_IM {| l := l; input := input; destination := destination; output := output |})) | None => True end
Hchar: ∀ s : vstate (equivocator_vlsm (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})))), vvalid (equivocator_vlsm (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})))) (VLSM.l (composite_transition_item_projection equivocator_IM {| l := l; input := input; destination := destination; output := output |})) (s, VLSM.input (composite_transition_item_projection equivocator_IM {| l := l; input := input; destination := destination; output := output |})) → vtransition (equivocator_vlsm (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})))) (VLSM.l (composite_transition_item_projection equivocator_IM {| l := l; input := input; destination := destination; output := output |})) (s, VLSM.input (composite_transition_item_projection equivocator_IM {| l := l; input := input; destination := destination; output := output |})) = (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := l; input := input; destination := destination; output := output |}), VLSM.output (composite_transition_item_projection equivocator_IM {| l := l; input := input; destination := destination; output := output |})) → proper_descriptor (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) eqv_descriptorsi' s ∧ previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) (eqv_descriptors (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) s eqv_descriptorsi' ∧ match oitemi with | Some itemx => ∀ sx : vstate (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))), sx = equivocator_state_descriptor_project s eqv_descriptorsi' → vvalid (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) (VLSM.l itemx) (sx, VLSM.input itemx) ∧ vtransition (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) (VLSM.l itemx) (sx, VLSM.input itemx) = ( VLSM.destination itemx, VLSM.output itemx) | None => equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := l; input := input; destination := destination; output := output |})) (eqv_descriptors (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) = equivocator_state_descriptor_project s eqv_descriptorsi' end∃ (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitemi with | Some item' => Some (Some {| l := existT (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})) (VLSM.l item'); input := VLSM.input {| l := l; input := input; destination := destination; output := output |}; destination := equivocators_state_project eqv_descriptors (VLSM.destination {| l := l; input := input; destination := destination; output := output |}); output := VLSM.output {| l := l; input := input; destination := destination; output := output |} |}, equivocator_descriptors_update eqv_descriptors (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})) eqv_descriptorsi') | None => Some (None, equivocator_descriptors_update eqv_descriptors (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})) eqv_descriptorsi') end = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) (projT2 (VLSM.l {| l := l; input := input; destination := destination; output := output |})), existT (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) (projT2 (VLSM.l {| l := l; input := input; destination := destination; output := output |})) Hex) = VLSM.l itemx) ∧ VLSM.input {| l := l; input := input; destination := destination; output := output |} = VLSM.input itemx ∧ VLSM.output {| l := l; input := input; destination := destination; output := output |} = VLSM.output itemx ∧ equivocators_state_project eqv_descriptors (VLSM.destination {| l := l; input := input; destination := destination; output := output |}) = VLSM.destination itemx ∧ eqv_descriptors' (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := input; destination := destination; output := output |})) | None => True end ∧ (∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (VLSM.l {| l := l; input := input; destination := destination; output := output |}) (s, VLSM.input {| l := l; input := input; destination := destination; output := output |}) → composite_transition equivocator_IM (VLSM.l {| l := l; input := input; destination := destination; output := output |}) (s, VLSM.input {| l := l; input := input; destination := destination; output := output |}) = (VLSM.destination {| l := l; input := input; destination := destination; output := output |}, VLSM.output {| l := l; input := input; destination := destination; output := output |}) → proper_descriptor (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) (eqv_descriptors' (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) (s (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})) (eqv_descriptors' (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) ∧ s = state_update equivocator_IM (VLSM.destination {| l := l; input := input; destination := destination; output := output |}) (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})) (s (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) ∧ previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) (eqv_descriptors (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) (s (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) (eqv_descriptors' (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (VLSM.l itemx) (sx, VLSM.input itemx) ∧ composite_transition IM (VLSM.l itemx) (sx, VLSM.input itemx) = (VLSM.destination itemx, VLSM.output itemx) | None => equivocators_state_project eqv_descriptors (VLSM.destination {| l := l; input := input; destination := destination; output := output |}) = equivocators_state_project eqv_descriptors' s end)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
l: _composite_label equivocator_IM
input: option message
destination: _composite_state equivocator_IM
output: option message
Hproper: proper_descriptor (IM (projT1 l)) (eqv_descriptors (projT1 l)) (destination (projT1 l))
oitemi: option (vtransition_item (IM (projT1 l)))
eqv_descriptorsi': MachineDescriptor (IM (projT1 l))
Hitemx: match oitemi with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 l)) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) (projT2 l) eq_refl), VLSM.l itemx = existing_equivocator_label_extract (IM (projT1 l)) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) (projT2 l) eq_refl) Hex) ∧ input = VLSM.input itemx ∧ output = VLSM.output itemx ∧ equivocator_state_descriptor_project (destination (projT1 l)) (eqv_descriptors (projT1 l)) = VLSM.destination itemx ∧ eqv_descriptorsi' = equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) (projT2 l) eq_refl) | None => True end
Hchar: ∀ s : vstate (equivocator_vlsm (IM (projT1 l))), vvalid (equivocator_vlsm (IM (projT1 l))) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) (projT2 l) eq_refl) (s, input) → vtransition (equivocator_vlsm (IM (projT1 l))) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) (projT2 l) eq_refl) (s, input) = (destination (projT1 l), output) → proper_descriptor (IM (projT1 l)) eqv_descriptorsi' s ∧ previous_state_descriptor_prop (IM (projT1 l)) (eqv_descriptors (projT1 l)) s eqv_descriptorsi' ∧ match oitemi with | Some itemx => ∀ sx : vstate (IM (projT1 l)), sx = equivocator_state_descriptor_project s eqv_descriptorsi' → vvalid (IM (projT1 l)) (VLSM.l itemx) (sx, VLSM.input itemx) ∧ vtransition (IM (projT1 l)) (VLSM.l itemx) (sx, VLSM.input itemx) = ( VLSM.destination itemx, VLSM.output itemx) | None => equivocator_state_descriptor_project (destination (projT1 l)) (eqv_descriptors (projT1 l)) = equivocator_state_descriptor_project s eqv_descriptorsi' end∃ (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitemi with | Some item' => Some (Some {| l := existT (projT1 l) (VLSM.l item'); input := input; destination := equivocators_state_project eqv_descriptors destination; output := output |}, equivocator_descriptors_update eqv_descriptors (projT1 l) eqv_descriptorsi') | None => Some (None, equivocator_descriptors_update eqv_descriptors (projT1 l) eqv_descriptorsi') end = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ input = VLSM.input itemx ∧ output = VLSM.output itemx ∧ equivocators_state_project eqv_descriptors destination = VLSM.destination itemx ∧ eqv_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end ∧ (∀ s : composite_state equivocator_IM, (let (i, li) := l in vvalid (equivocator_IM i) li (s i, input)) → (let (i, li) := l in let (si', om') := vtransition (equivocator_IM i) li (s i, input) in (state_update equivocator_IM s i si', om')) = (destination, output) → proper_descriptor (IM (projT1 l)) (eqv_descriptors' (projT1 l)) (s (projT1 l)) ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 l) (eqv_descriptors' (projT1 l)) ∧ s = state_update equivocator_IM destination (projT1 l) (s (projT1 l)) ∧ previous_state_descriptor_prop (IM (projT1 l)) (eqv_descriptors (projT1 l)) (s (projT1 l)) (eqv_descriptors' (projT1 l)) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, VLSM.input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, VLSM.input itemx) in (state_update IM sx i si', om')) = (VLSM.destination itemx, VLSM.output itemx) | None => equivocators_state_project eqv_descriptors destination = equivocators_state_project eqv_descriptors' s end)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hproper: proper_descriptor (IM (projT1 (existT i li))) (eqv_descriptors (projT1 (existT i li))) (destination (projT1 (existT i li)))
oitemi: option (vtransition_item (IM (projT1 (existT i li))))
eqv_descriptorsi': MachineDescriptor (IM (projT1 (existT i li)))
Hitemx: match oitemi with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (existT i li))) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) (projT2 (existT i li)) eq_refl), l itemx = existing_equivocator_label_extract (IM (projT1 (existT i li))) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) (projT2 (existT i li)) eq_refl) Hex) ∧ input = VLSM.input itemx ∧ output = VLSM.output itemx ∧ equivocator_state_descriptor_project (destination (projT1 (existT i li))) (eqv_descriptors (projT1 (existT i li))) = VLSM.destination itemx ∧ eqv_descriptorsi' = equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) (projT2 (existT i li)) eq_refl) | None => True end
Hchar: ∀ s : vstate (equivocator_vlsm (IM (projT1 (existT i li)))), vvalid (equivocator_vlsm (IM (projT1 (existT i li)))) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) (projT2 (existT i li)) eq_refl) (s, input) → vtransition (equivocator_vlsm (IM (projT1 (existT i li)))) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) (projT2 (existT i li)) eq_refl) (s, input) = (destination (projT1 (existT i li)), output) → proper_descriptor (IM (projT1 (existT i li))) eqv_descriptorsi' s ∧ previous_state_descriptor_prop (IM (projT1 (existT i li))) (eqv_descriptors (projT1 (existT i li))) s eqv_descriptorsi' ∧ match oitemi with | Some itemx => ∀ sx : vstate (IM (projT1 (existT i li))), sx = equivocator_state_descriptor_project s eqv_descriptorsi' → vvalid (IM (projT1 (existT i li))) (l itemx) (sx, VLSM.input itemx) ∧ vtransition (IM (projT1 (existT i li))) (l itemx) (sx, VLSM.input itemx) = ( VLSM.destination itemx, VLSM.output itemx) | None => equivocator_state_descriptor_project (destination (projT1 (existT i li))) (eqv_descriptors (projT1 (existT i li))) = equivocator_state_descriptor_project s eqv_descriptorsi' end∃ (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitemi with | Some item' => Some (Some {| l := existT (projT1 (existT i li)) (l item'); input := input; destination := equivocators_state_project eqv_descriptors destination; output := output |}, equivocator_descriptors_update eqv_descriptors (projT1 (existT i li)) eqv_descriptorsi') | None => Some (None, equivocator_descriptors_update eqv_descriptors (projT1 (existT i li)) eqv_descriptorsi') end = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (existT i li))) (projT2 (existT i li)), existT (projT1 (existT i li)) (existing_equivocator_label_extract (IM (projT1 (existT i li))) (projT2 (existT i li)) Hex) = l itemx) ∧ input = VLSM.input itemx ∧ output = VLSM.output itemx ∧ equivocators_state_project eqv_descriptors destination = VLSM.destination itemx ∧ eqv_descriptors' (projT1 (existT i li)) = equivocator_label_descriptor (projT2 (existT i li)) | None => True end ∧ (∀ s : composite_state equivocator_IM, vvalid (equivocator_IM i) li (s i, input) → (let (si', om') := vtransition (equivocator_IM i) li (s i, input) in (state_update equivocator_IM s i si', om')) = (destination, output) → proper_descriptor (IM (projT1 (existT i li))) (eqv_descriptors' (projT1 (existT i li))) (s (projT1 (existT i li))) ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (existT i li)) (eqv_descriptors' (projT1 (existT i li))) ∧ s = state_update equivocator_IM destination (projT1 (existT i li)) (s (projT1 (existT i li))) ∧ previous_state_descriptor_prop (IM (projT1 (existT i li))) (eqv_descriptors (projT1 (existT i li))) (s (projT1 (existT i li))) (eqv_descriptors' (projT1 (existT i li))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → (let (i, li) := l itemx in vvalid (IM i) li (sx i, VLSM.input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, VLSM.input itemx) in (state_update IM sx i si', om')) = (VLSM.destination itemx, VLSM.output itemx) | None => equivocators_state_project eqv_descriptors destination = equivocators_state_project eqv_descriptors' s end)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (destination i)
oitemi: option (vtransition_item (IM i))
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: match oitemi with | Some itemx => (∃ Hex : existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl), l itemx = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) ∧ input = VLSM.input itemx ∧ output = VLSM.output itemx ∧ equivocator_state_descriptor_project (destination i) (eqv_descriptors i) = VLSM.destination itemx ∧ eqv_descriptorsi' = equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) | None => True end
Hchar: ∀ s : vstate (equivocator_vlsm (IM i)), vvalid (equivocator_vlsm (IM i)) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) (s, input) → vtransition (equivocator_vlsm (IM i)) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) (s, input) = (destination i, output) → proper_descriptor (IM i) eqv_descriptorsi' s ∧ previous_state_descriptor_prop (IM i) (eqv_descriptors i) s eqv_descriptorsi' ∧ match oitemi with | Some itemx => ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project s eqv_descriptorsi' → vvalid (IM i) (l itemx) (sx, VLSM.input itemx) ∧ vtransition (IM i) (l itemx) (sx, VLSM.input itemx) = ( VLSM.destination itemx, VLSM.output itemx) | None => equivocator_state_descriptor_project (destination i) (eqv_descriptors i) = equivocator_state_descriptor_project s eqv_descriptorsi' end∃ (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitemi with | Some item' => Some (Some {| l := existT i (l item'); input := input; destination := equivocators_state_project eqv_descriptors destination; output := output |}, equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi') | None => Some (None, equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi') end = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM i) li, existT i (existing_equivocator_label_extract (IM i) li Hex) = l itemx) ∧ input = VLSM.input itemx ∧ output = VLSM.output itemx ∧ equivocators_state_project eqv_descriptors destination = VLSM.destination itemx ∧ eqv_descriptors' i = equivocator_label_descriptor li | None => True end ∧ (∀ s : composite_state equivocator_IM, vvalid (equivocator_IM i) li (s i, input) → (let (si', om') := vtransition (equivocator_IM i) li (s i, input) in (state_update equivocator_IM s i si', om')) = (destination, output) → proper_descriptor (IM i) (eqv_descriptors' i) (s i) ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors i (eqv_descriptors' i) ∧ s = state_update equivocator_IM destination i (s i) ∧ previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (eqv_descriptors' i) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → (let (i, li) := l itemx in vvalid (IM i) li (sx i, VLSM.input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, VLSM.input itemx) in (state_update IM sx i si', om')) = (VLSM.destination itemx, VLSM.output itemx) | None => equivocators_state_project eqv_descriptors destination = equivocators_state_project eqv_descriptors' s end)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')proper_descriptor (IM i) (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) i) (s i) ∧ equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) = equivocator_descriptors_update eqv_descriptors i (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) i) ∧ s = state_update equivocator_IM (state_update equivocator_IM s i si') i (s i) ∧ previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) i) ∧ (∀ sx : composite_state IM, sx = equivocators_state_project (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))) s → vvalid (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (sx i, input itemi') ∧ (let (si', om') := vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (sx i, input itemi') in (state_update IM sx i si', om')) = (equivocators_state_project eqv_descriptors (state_update equivocator_IM s i si'), output itemi'))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)proper_descriptor (IM i) (equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi' i) (s i) ∧ equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi' = equivocator_descriptors_update eqv_descriptors i (equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi' i) ∧ s = state_update equivocator_IM (state_update equivocator_IM s i si') i (s i) ∧ previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi' i) ∧ equivocators_state_project eqv_descriptors (state_update equivocator_IM s i si') = equivocators_state_project (equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi') smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')proper_descriptor (IM i) (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) i) (s i) ∧ equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) = equivocator_descriptors_update eqv_descriptors i (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) i) ∧ s = state_update equivocator_IM (state_update equivocator_IM s i si') i (s i) ∧ previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) i) ∧ (∀ sx : composite_state IM, sx = equivocators_state_project (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))) s → vvalid (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (sx i, input itemi') ∧ (let (si', om') := vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (sx i, input itemi') in (state_update IM sx i si', om')) = (equivocators_state_project eqv_descriptors (state_update equivocator_IM s i si'), output itemi'))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')proper_descriptor (IM i) (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) i) (s i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) = equivocator_descriptors_update eqv_descriptors i (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')s = state_update equivocator_IM (state_update equivocator_IM s i si') i (s i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
sx: composite_state IM
Hsx: sx = equivocators_state_project (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))) svvalid (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (sx i, input itemi')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
sx: composite_state IM
Hsx: sx = equivocators_state_project (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))) s(let (si', om') := vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (sx i, input itemi') in (state_update IM sx i si', om')) = (equivocators_state_project eqv_descriptors (state_update equivocator_IM s i si'), output itemi')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')proper_descriptor (IM i) (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) i) (s i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')proper_descriptor (IM i) (Common.equivocator_descriptors_update IM eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) i) (s i)assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) = equivocator_descriptors_update eqv_descriptors i (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')Common.equivocator_descriptors_update IM eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) = Common.equivocator_descriptors_update IM eqv_descriptors i (Common.equivocator_descriptors_update IM eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) i)reflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')Common.equivocator_descriptors_update IM eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) = Common.equivocator_descriptors_update IM eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')s = state_update equivocator_IM (state_update equivocator_IM s i si') i (s i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
j: indexs j = state_update equivocator_IM (state_update equivocator_IM s i si') i (s i) jmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
j: index
e: j = is j = state_update equivocator_IM (state_update equivocator_IM s i si') i (s i) jmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
j: index
n: j ≠ is j = state_update equivocator_IM (state_update equivocator_IM s i si') i (s i) jmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
j: index
e: j = is j = state_update equivocator_IM (state_update equivocator_IM s i si') i (s i) jmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')s i = state_update equivocator_IM (state_update equivocator_IM s i si') i (s i) ireflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')s i = s imessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
j: index
n: j ≠ is j = state_update equivocator_IM (state_update equivocator_IM s i si') i (s i) jreflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
j: index
n: j ≠ is j = s jmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (Common.equivocator_descriptors_update IM eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) i)assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
sx: composite_state IM
Hsx: sx = equivocators_state_project (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))) svvalid (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (sx i, input itemi')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')vvalid (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocators_state_project (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))) s i, input itemi')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')vvalid (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocators_state_project (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))) s i, input itemi')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')vvalid (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (Common.equivocators_state_project IM (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))) s i, input itemi')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')vvalid (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) i), input itemi')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')vvalid (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (Common.equivocator_descriptors_update IM eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) i), input itemi')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')vvalid (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')vvalid (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
sx: composite_state IM
Hsx: sx = equivocators_state_project (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))) s(let (si', om') := vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (sx i, input itemi') in (state_update IM sx i si', om')) = (equivocators_state_project eqv_descriptors (state_update equivocator_IM s i si'), output itemi')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hchar: ∀ sx : vstate (IM i), sx = equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) → vvalid (IM i) (l itemi') (sx, input itemi') ∧ vtransition (IM i) (l itemi') (sx, input itemi') = (destination itemi', output itemi')
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')(let (si', om') := vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocators_state_project (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))) s i, input itemi') in (state_update IM (equivocators_state_project (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))) s) i si', om')) = (equivocators_state_project eqv_descriptors (state_update equivocator_IM s i si'), output itemi')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')(let (si', om') := vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocators_state_project (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))) s i, input itemi') in (state_update IM (equivocators_state_project (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))) s) i si', om')) = (equivocators_state_project eqv_descriptors (state_update equivocator_IM s i si'), output itemi')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')(let (si', om') := vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (Common.equivocators_state_project IM (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))) s i, input itemi') in (state_update IM (Common.equivocators_state_project IM (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))) s) i si', om')) = (Common.equivocators_state_project IM eqv_descriptors (state_update equivocator_IM s i si'), output itemi')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')(let (si', om') := vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) i), input itemi') in (state_update IM (λ eqv : index, equivocator_state_descriptor_project (s eqv) (equivocator_descriptors_update eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) eqv)) i si', om')) = (λ eqv : index, equivocator_state_descriptor_project (state_update equivocator_IM s i si' eqv) (eqv_descriptors eqv), output itemi')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')(let (si', om') := vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (Common.equivocator_descriptors_update IM eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) i), input itemi') in (state_update IM (λ eqv : index, equivocator_state_descriptor_project (s eqv) (Common.equivocator_descriptors_update IM eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) eqv)) i si', om')) = (λ eqv : index, equivocator_state_descriptor_project (state_update equivocator_IM s i si' eqv) (eqv_descriptors eqv), output itemi')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')(let (si', om') := vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') in (state_update IM (λ eqv : index, equivocator_state_descriptor_project (s eqv) (Common.equivocator_descriptors_update IM eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) eqv)) i si', om')) = (λ eqv : index, equivocator_state_descriptor_project (state_update equivocator_IM s i si' eqv) (eqv_descriptors eqv), output itemi')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')(let (si', om') := vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') in (state_update IM (λ eqv : index, equivocator_state_descriptor_project (s eqv) (Common.equivocator_descriptors_update IM eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) eqv)) i si', om')) = (λ eqv : index, equivocator_state_descriptor_project (state_update equivocator_IM s i si' eqv) (eqv_descriptors eqv), output itemi')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')(let (si', om') := vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') in (state_update IM (λ eqv : index, equivocator_state_descriptor_project (s eqv) (Common.equivocator_descriptors_update IM eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) eqv)) i si', om')) = (λ eqv : index, equivocator_state_descriptor_project (state_update equivocator_IM s i si' eqv) (eqv_descriptors eqv), output itemi')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')(state_update IM (λ eqv : index, equivocator_state_descriptor_project (s eqv) (Common.equivocator_descriptors_update IM eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) eqv)) i (destination itemi'), output itemi') = (λ eqv : index, equivocator_state_descriptor_project (state_update equivocator_IM s i si' eqv) (eqv_descriptors eqv), output itemi')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')state_update IM (λ eqv : index, equivocator_state_descriptor_project (s eqv) (Common.equivocator_descriptors_update IM eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) eqv)) i (destination itemi') = (λ eqv : index, equivocator_state_descriptor_project (state_update equivocator_IM s i si' eqv) (eqv_descriptors eqv))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')
eqv: indexstate_update IM (λ eqv : index, equivocator_state_descriptor_project (s eqv) (Common.equivocator_descriptors_update IM eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) eqv)) i (destination itemi') eqv = equivocator_state_descriptor_project (state_update equivocator_IM s i si' eqv) (eqv_descriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')
eqv: index
e: eqv = istate_update IM (λ eqv : index, equivocator_state_descriptor_project (s eqv) (Common.equivocator_descriptors_update IM eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) eqv)) i (destination itemi') eqv = equivocator_state_descriptor_project (state_update equivocator_IM s i si' eqv) (eqv_descriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')
eqv: index
n: eqv ≠ istate_update IM (λ eqv : index, equivocator_state_descriptor_project (s eqv) (Common.equivocator_descriptors_update IM eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) eqv)) i (destination itemi') eqv = equivocator_state_descriptor_project (state_update equivocator_IM s i si' eqv) (eqv_descriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')
eqv: index
e: eqv = istate_update IM (λ eqv : index, equivocator_state_descriptor_project (s eqv) (Common.equivocator_descriptors_update IM eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) eqv)) i (destination itemi') eqv = equivocator_state_descriptor_project (state_update equivocator_IM s i si' eqv) (eqv_descriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')state_update IM (λ eqv : index, equivocator_state_descriptor_project (s eqv) (Common.equivocator_descriptors_update IM eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) eqv)) i (destination itemi') i = equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')destination itemi' = equivocator_state_descriptor_project si' (eqv_descriptors i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project si' (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')destination itemi' = equivocator_state_descriptor_project si' (eqv_descriptors i)assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project si' (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')equivocator_state_descriptor_project si' (eqv_descriptors i) = destination itemi'message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')
eqv: index
n: eqv ≠ istate_update IM (λ eqv : index, equivocator_state_descriptor_project (s eqv) (Common.equivocator_descriptors_update IM eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) eqv)) i (destination itemi') eqv = equivocator_state_descriptor_project (state_update equivocator_IM s i si' eqv) (eqv_descriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')
eqv: index
n: eqv ≠ iequivocator_state_descriptor_project (s eqv) (Common.equivocator_descriptors_update IM eqv_descriptors i (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) eqv) = equivocator_state_descriptor_project (s eqv) (eqv_descriptors eqv)reflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
itemi': vtransition_item (IM i)
Hex: existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)
Hli: l itemi' = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hproper': proper_descriptor (IM i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)) (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl))
Hdestinationi: equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = destination itemi'
Hv: vvalid (equivocator_IM i) li (s i, input itemi')
Ht': vtransition (equivocator_IM i) li (s i, input itemi') = (si', output itemi')
Hvx: vvalid (IM i) (l itemi') (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi')
Htx: vtransition (IM i) (existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) (equivocator_state_descriptor_project (s i) (equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl)), input itemi') = (destination itemi', output itemi')
eqv: index
n: eqv ≠ iequivocator_state_descriptor_project (s eqv) (eqv_descriptors eqv) = equivocator_state_descriptor_project (s eqv) (eqv_descriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)proper_descriptor (IM i) (equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi' i) (s i) ∧ equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi' = equivocator_descriptors_update eqv_descriptors i (equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi' i) ∧ s = state_update equivocator_IM (state_update equivocator_IM s i si') i (s i) ∧ previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi' i) ∧ equivocators_state_project eqv_descriptors (state_update equivocator_IM s i si') = equivocators_state_project (equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi') smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)proper_descriptor (IM i) (equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi' i) (s i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi' = equivocator_descriptors_update eqv_descriptors i (equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi' i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)s = state_update equivocator_IM (state_update equivocator_IM s i si') i (s i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi' i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)equivocators_state_project eqv_descriptors (state_update equivocator_IM s i si') = equivocators_state_project (equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi') smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)proper_descriptor (IM i) (equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi' i) (s i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)proper_descriptor (IM i) (Common.equivocator_descriptors_update IM eqv_descriptors i eqv_descriptorsi' i) (s i)assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)proper_descriptor (IM i) eqv_descriptorsi' (s i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi' = equivocator_descriptors_update eqv_descriptors i (equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi' i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)Common.equivocator_descriptors_update IM eqv_descriptors i eqv_descriptorsi' = Common.equivocator_descriptors_update IM eqv_descriptors i (Common.equivocator_descriptors_update IM eqv_descriptors i eqv_descriptorsi' i)reflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)Common.equivocator_descriptors_update IM eqv_descriptors i eqv_descriptorsi' = Common.equivocator_descriptors_update IM eqv_descriptors i eqv_descriptorsi'message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)s = state_update equivocator_IM (state_update equivocator_IM s i si') i (s i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)
j: indexs j = state_update equivocator_IM (state_update equivocator_IM s i si') i (s i) jmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)
j: index
e: j = is j = state_update equivocator_IM (state_update equivocator_IM s i si') i (s i) jmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)
j: index
n: j ≠ is j = state_update equivocator_IM (state_update equivocator_IM s i si') i (s i) jmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)
j: index
e: j = is j = state_update equivocator_IM (state_update equivocator_IM s i si') i (s i) jmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)s i = state_update equivocator_IM (state_update equivocator_IM s i si') i (s i) ireflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)s i = s imessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)
j: index
n: j ≠ is j = state_update equivocator_IM (state_update equivocator_IM s i si') i (s i) jreflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)
j: index
n: j ≠ is j = s jmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi' i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) (Common.equivocator_descriptors_update IM eqv_descriptors i eqv_descriptorsi' i)assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)equivocators_state_project eqv_descriptors (state_update equivocator_IM s i si') = equivocators_state_project (equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi') smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)
eqv: indexequivocators_state_project eqv_descriptors (state_update equivocator_IM s i si') eqv = equivocators_state_project (equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi') s eqvmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)
eqv: indexCommon.equivocators_state_project IM eqv_descriptors (state_update equivocator_IM s i si') eqv = Common.equivocators_state_project IM (equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi') s eqvmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)
eqv: indexequivocator_state_descriptor_project (state_update equivocator_IM s i si' eqv) (eqv_descriptors eqv) = equivocator_state_descriptor_project (s eqv) (equivocator_descriptors_update eqv_descriptors i eqv_descriptorsi' eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)
eqv: indexequivocator_state_descriptor_project (state_update equivocator_IM s i si' eqv) (eqv_descriptors eqv) = equivocator_state_descriptor_project (s eqv) (Common.equivocator_descriptors_update IM eqv_descriptors i eqv_descriptorsi' eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)
eqv: index
e: eqv = iequivocator_state_descriptor_project (state_update equivocator_IM s i si' eqv) (eqv_descriptors eqv) = equivocator_state_descriptor_project (s eqv) (Common.equivocator_descriptors_update IM eqv_descriptors i eqv_descriptorsi' eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)
eqv: index
n: eqv ≠ iequivocator_state_descriptor_project (state_update equivocator_IM s i si' eqv) (eqv_descriptors eqv) = equivocator_state_descriptor_project (s eqv) (Common.equivocator_descriptors_update IM eqv_descriptors i eqv_descriptorsi' eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)
eqv: index
e: eqv = iequivocator_state_descriptor_project (state_update equivocator_IM s i si' eqv) (eqv_descriptors eqv) = equivocator_state_descriptor_project (s eqv) (Common.equivocator_descriptors_update IM eqv_descriptors i eqv_descriptorsi' eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)equivocator_state_descriptor_project (state_update equivocator_IM s i si' i) (eqv_descriptors i) = equivocator_state_descriptor_project (s i) (Common.equivocator_descriptors_update IM eqv_descriptors i eqv_descriptorsi' i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) (Common.equivocator_descriptors_update IM eqv_descriptors i eqv_descriptorsi' i)assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)
eqv: index
n: eqv ≠ iequivocator_state_descriptor_project (state_update equivocator_IM s i si' eqv) (eqv_descriptors eqv) = equivocator_state_descriptor_project (s eqv) (Common.equivocator_descriptors_update IM eqv_descriptors i eqv_descriptorsi' eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)
eqv: index
n: eqv ≠ iequivocator_state_descriptor_project (s eqv) (eqv_descriptors eqv) = equivocator_state_descriptor_project (s eqv) (Common.equivocator_descriptors_update IM eqv_descriptors i eqv_descriptorsi' eqv)reflexivity. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
i: index
li: vlabel (equivocator_IM i)
input, output: option message
s: composite_state equivocator_IM
si': Common.bounded_state_copies (IM i)
Hproper: proper_descriptor (IM i) (eqv_descriptors i) (state_update equivocator_IM s i si' i)
eqv_descriptorsi': MachineDescriptor (IM i)
Hitemx: True
Hproper': proper_descriptor (IM i) eqv_descriptorsi' (s i)
Hex_new: previous_state_descriptor_prop (IM i) (eqv_descriptors i) (s i) eqv_descriptorsi'
Hchar: equivocator_state_descriptor_project si' (eqv_descriptors i) = equivocator_state_descriptor_project (s i) eqv_descriptorsi'
Hv: vvalid (equivocator_IM i) li (s i, input)
Ht': vtransition (equivocator_IM i) li (s i, input) = (si', output)
eqv: index
n: eqv ≠ iequivocator_state_descriptor_project (s eqv) (eqv_descriptors eqv) = equivocator_state_descriptor_project (s eqv) (eqv_descriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)∃ (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_transition_item_project eqv_descriptors item = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end ∧ (∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l item) (s, input item) → composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item) → proper_equivocator_descriptors eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) ∧ s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item))) ∧ previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s end)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)∃ (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_transition_item_project eqv_descriptors item = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end ∧ (∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l item) (s, input item) → composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item) → proper_equivocator_descriptors eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) ∧ s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item))) ∧ previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s end)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)
oitem: option (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hoitem: equivocators_transition_item_project eqv_descriptors item = Some (oitem, eqv_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end
Hchar: ∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l item) (s, input item) → composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item) → proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item))) ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) ∧ s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item))) ∧ previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s end∃ (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_transition_item_project eqv_descriptors item = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end ∧ (∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l item) (s, input item) → composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item) → proper_equivocator_descriptors eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) ∧ s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item))) ∧ previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s end)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)
oitem: option (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hoitem: equivocators_transition_item_project eqv_descriptors item = Some (oitem, eqv_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end
Hchar: ∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l item) (s, input item) → composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item) → proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item))) ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) ∧ s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item))) ∧ previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s endequivocators_transition_item_project eqv_descriptors item = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end ∧ (∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l item) (s, input item) → composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item) → proper_equivocator_descriptors eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) ∧ s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item))) ∧ previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s end)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)
oitem: option (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hoitem: equivocators_transition_item_project eqv_descriptors item = Some (oitem, eqv_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end
Hchar: ∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l item) (s, input item) → composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item) → proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item))) ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) ∧ s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item))) ∧ previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s endmatch oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end ∧ (∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l item) (s, input item) → composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item) → proper_equivocator_descriptors eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) ∧ s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item))) ∧ previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s end)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)
oitem: option (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hoitem: equivocators_transition_item_project eqv_descriptors item = Some (oitem, eqv_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end
Hchar: ∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l item) (s, input item) → composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item) → proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item))) ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) ∧ s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item))) ∧ previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s end∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l item) (s, input item) → composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item) → proper_equivocator_descriptors eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) ∧ s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item))) ∧ previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)
oitem: option (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hoitem: equivocators_transition_item_project eqv_descriptors item = Some (oitem, eqv_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end
Hchar: ∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l item) (s, input item) → composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item) → proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item))) ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) ∧ s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item))) ∧ previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s end
s: composite_state equivocator_IM
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)proper_equivocator_descriptors eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) ∧ s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item))) ∧ previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)
oitem: option (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hoitem: equivocators_transition_item_project eqv_descriptors item = Some (oitem, eqv_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end
s: composite_state equivocator_IM
Hv: composite_valid equivocator_IM (l item) (s, input item)
Ht: composite_transition equivocator_IM (l item) (s, input item) = (destination item, output item)
Hproperi': proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item)))
Heqv': eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item)))
Hs: s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item)))
Hex_new: previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item)))
Hchar: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s endproper_equivocator_descriptors eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) ∧ s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item))) ∧ previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)
oitem: option (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end
s: composite_state equivocator_IM
Hproperi': proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item)))
Heqv': eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item)))
Hs: s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item)))
Hex_new: previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item)))
Hchar: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s endproper_equivocator_descriptors eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) ∧ s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item))) ∧ previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors' s endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)
oitem: option (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end
s: composite_state equivocator_IM
Hproperi': proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item)))
Heqv': eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item)))
Hs: s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item)))
Hex_new: previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item)))proper_equivocator_descriptors eqv_descriptors' smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)
oitem: option (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end
s: composite_state equivocator_IM
Hproperi': proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item)))
Heqv': eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item)))
Hs: s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item)))
Hex_new: previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item)))
eqv: indexproper_descriptor (IM eqv) (eqv_descriptors' eqv) (s eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)
oitem: option (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end
s: composite_state equivocator_IM
Hproperi': proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item)))
Heqv': eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item)))
Hs: s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item)))
Hex_new: previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item)))
eqv: index
e: eqv = projT1 (l item)proper_descriptor (IM eqv) (eqv_descriptors' eqv) (s eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)
oitem: option (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end
s: composite_state equivocator_IM
Hproperi': proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item)))
Heqv': eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item)))
Hs: s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item)))
Hex_new: previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item)))
eqv: index
n: eqv ≠ projT1 (l item)proper_descriptor (IM eqv) (eqv_descriptors' eqv) (s eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)
oitem: option (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end
s: composite_state equivocator_IM
Hproperi': proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item)))
Heqv': eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item)))
Hs: s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item)))
Hex_new: previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item)))
eqv: index
e: eqv = projT1 (l item)proper_descriptor (IM eqv) (eqv_descriptors' eqv) (s eqv)assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)
oitem: option (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end
s: composite_state equivocator_IM
Hproperi': proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item)))
Heqv': eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item)))
Hs: s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item)))
Hex_new: previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item)))proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item)))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)
oitem: option (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end
s: composite_state equivocator_IM
Hproperi': proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item)))
Heqv': eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item)))
Hs: s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item)))
Hex_new: previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item)))
eqv: index
n: eqv ≠ projT1 (l item)proper_descriptor (IM eqv) (eqv_descriptors' eqv) (s eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)
oitem: option (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end
s: composite_state equivocator_IM
Hproperi': proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item)))
Heqv': eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item)))
Hs: s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item)))
Hex_new: previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item)))
eqv: index
n: eqv ≠ projT1 (l item)proper_descriptor (IM eqv) (equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) eqv) (s eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)
oitem: option (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end
s: composite_state equivocator_IM
Hproperi': proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item)))
Heqv': eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item)))
Hs: s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item)))
Hex_new: previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item)))
eqv: index
n: eqv ≠ projT1 (l item)proper_descriptor (IM eqv) (equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) eqv) (state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item))) eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)
oitem: option (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end
s: composite_state equivocator_IM
Hproperi': proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item)))
Heqv': eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item)))
Hs: s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item)))
Hex_new: previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item)))
eqv: index
n: eqv ≠ projT1 (l item)proper_descriptor (IM eqv) (equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) eqv) (destination item eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)
oitem: option (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end
s: composite_state equivocator_IM
Hproperi': proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item)))
Heqv': eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item)))
Hs: s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item)))
Hex_new: previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item)))
eqv: index
n: eqv ≠ projT1 (l item)match equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) eqv with | NewMachine sn => vinitial_state_prop (IM eqv) sn | Existing i => is_Some (equivocator_state_project (destination item eqv) i) endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)
oitem: option (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end
s: composite_state equivocator_IM
Hproperi': proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item)))
Heqv': eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item)))
Hs: s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item)))
Hex_new: previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item)))
eqv: index
n: eqv ≠ projT1 (l item)match Common.equivocator_descriptors_update IM eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item))) eqv with | NewMachine sn => vinitial_state_prop (IM eqv) sn | Existing i => is_Some (equivocator_state_project (destination item eqv) i) endapply Hproper. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
Hproper: proper_equivocator_descriptors eqv_descriptors (destination item)
oitem: option (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemx ∧ eqv_descriptors' (projT1 (l item)) = equivocator_label_descriptor (projT2 (l item)) | None => True end
s: composite_state equivocator_IM
Hproperi': proper_descriptor (IM (projT1 (l item))) (eqv_descriptors' (projT1 (l item))) (s (projT1 (l item)))
Heqv': eqv_descriptors' = equivocator_descriptors_update eqv_descriptors (projT1 (l item)) (eqv_descriptors' (projT1 (l item)))
Hs: s = state_update equivocator_IM (destination item) (projT1 (l item)) (s (projT1 (l item)))
Hex_new: previous_state_descriptor_prop (IM (projT1 (l item))) (eqv_descriptors (projT1 (l item))) (s (projT1 (l item))) (eqv_descriptors' (projT1 (l item)))
eqv: index
n: eqv ≠ projT1 (l item)match eqv_descriptors eqv with | NewMachine sn => vinitial_state_prop (IM eqv) sn | Existing i => is_Some (equivocator_state_project (destination item eqv) i) endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors, eqv_descriptors': equivocator_descriptors
item: composite_transition_item equivocator_IM
itemx: composite_transition_item IM
Hpr_item: equivocators_transition_item_project eqv_descriptors item = Some (Some itemx, eqv_descriptors')(∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemxmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors, eqv_descriptors': equivocator_descriptors
item: composite_transition_item equivocator_IM
itemx: composite_transition_item IM
Hpr_item: equivocators_transition_item_project eqv_descriptors item = Some (Some itemx, eqv_descriptors')(∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemxmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors, eqv_descriptors': equivocator_descriptors
item: composite_transition_item equivocator_IM
itemx: composite_transition_item IM
Hpr_item: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (eqv_descriptors (projT1 (l item))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |}, equivocator_descriptors_update eqv_descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update eqv_descriptors (projT1 (l item)) deqv') | None => None end = Some (Some itemx, eqv_descriptors')(∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemxmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors, eqv_descriptors': equivocator_descriptors
item: composite_transition_item equivocator_IM
itemx: composite_transition_item IM
itemi: vtransition_item (IM (projT1 (l item)))
descriptori: MachineDescriptor (IM (projT1 (l item)))
Hpr_itemi: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (eqv_descriptors (projT1 (l item))) = Some (Some itemi, descriptori)
Hpr_item: Some (Some {| l := existT (projT1 (l item)) (l itemi); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |}, equivocator_descriptors_update eqv_descriptors (projT1 (l item)) descriptori) = Some (Some itemx, eqv_descriptors')(∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemx) ∧ input item = input itemx ∧ output item = output itemx ∧ equivocators_state_project eqv_descriptors (destination item) = destination itemxmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors, eqv_descriptors': equivocator_descriptors
item: composite_transition_item equivocator_IM
itemx: composite_transition_item IM
itemi: vtransition_item (IM (projT1 (l item)))
descriptori: MachineDescriptor (IM (projT1 (l item)))
Hpr_itemi: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (eqv_descriptors (projT1 (l item))) = Some (Some itemi, descriptori)
Hpr_item: Some (Some {| l := existT (projT1 (l item)) (l itemi); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |}, equivocator_descriptors_update eqv_descriptors (projT1 (l item)) descriptori) = Some (Some itemx, eqv_descriptors')
H2: {| l := existT (projT1 (l item)) (l itemi); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |} = itemx
H3: equivocator_descriptors_update eqv_descriptors (projT1 (l item)) descriptori = eqv_descriptors'(∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l {| l := existT (projT1 (l item)) (l itemi); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |}) ∧ input item = input {| l := existT (projT1 (l item)) (l itemi); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |} ∧ output item = output {| l := existT (projT1 (l item)) (l itemi); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |} ∧ equivocators_state_project eqv_descriptors (destination item) = destination {| l := existT (projT1 (l item)) (l itemi); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |}message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
itemi: vtransition_item (IM (projT1 (l item)))
descriptori: MachineDescriptor (IM (projT1 (l item)))
Hpr_itemi: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (eqv_descriptors (projT1 (l item))) = Some (Some itemi, descriptori)
Hpr_item: Some (Some {| l := existT (projT1 (l item)) (l itemi); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |}, equivocator_descriptors_update eqv_descriptors (projT1 (l item)) descriptori) = Some (Some {| l := existT (projT1 (l item)) (l itemi); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |}, equivocator_descriptors_update eqv_descriptors (projT1 (l item)) descriptori)(∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l {| l := existT (projT1 (l item)) (l itemi); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |}) ∧ input item = input {| l := existT (projT1 (l item)) (l itemi); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |} ∧ output item = output {| l := existT (projT1 (l item)) (l itemi); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |} ∧ equivocators_state_project eqv_descriptors (destination item) = destination {| l := existT (projT1 (l item)) (l itemi); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |}message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
itemi: vtransition_item (IM (projT1 (l item)))
descriptori: MachineDescriptor (IM (projT1 (l item)))
Hpr_itemi: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (eqv_descriptors (projT1 (l item))) = Some (Some itemi, descriptori)(∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l {| l := existT (projT1 (l item)) (l itemi); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |}) ∧ input item = input {| l := existT (projT1 (l item)) (l itemi); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |} ∧ output item = output {| l := existT (projT1 (l item)) (l itemi); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |} ∧ equivocators_state_project eqv_descriptors (destination item) = destination {| l := existT (projT1 (l item)) (l itemi); input := input item; destination := equivocators_state_project eqv_descriptors (destination item); output := output item |}message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
itemi: vtransition_item (IM (projT1 (l item)))
descriptori: MachineDescriptor (IM (projT1 (l item)))
Hpr_itemi: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (eqv_descriptors (projT1 (l item))) = Some (Some itemi, descriptori)(∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = existT (projT1 (l item)) (l itemi)) ∧ input item = input item ∧ output item = output item ∧ equivocators_state_project eqv_descriptors (destination item) = equivocators_state_project eqv_descriptors (destination item)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
itemi: vtransition_item (IM (projT1 (l item)))
descriptori: MachineDescriptor (IM (projT1 (l item)))
Hpr_itemi: equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection equivocator_IM item) (eqv_descriptors (projT1 (l item))) = Some (Some itemi, descriptori)∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = existT (projT1 (l item)) (l itemi)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
itemi: vtransition_item (IM (projT1 (l item)))
descriptori: MachineDescriptor (IM (projT1 (l item)))
Hex: existing_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item))
Hl: l itemi = existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) Hex
H1: input (composite_transition_item_projection equivocator_IM item) = input itemi ∧ output (composite_transition_item_projection equivocator_IM item) = output itemi ∧ equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) (eqv_descriptors (projT1 (l item))) = destination itemi ∧ descriptori = equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = existT (projT1 (l item)) (l itemi)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
itemi: vtransition_item (IM (projT1 (l item)))
descriptori: MachineDescriptor (IM (projT1 (l item)))
Hex: existing_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item))
Hl: l itemi = existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) Hex
H1: input (composite_transition_item_projection equivocator_IM item) = input itemi ∧ output (composite_transition_item_projection equivocator_IM item) = output itemi ∧ equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) (eqv_descriptors (projT1 (l item))) = destination itemi ∧ descriptori = equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))∃ Hex0 : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex0) = existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) Hex)reflexivity. Qed. Definition equivocators_trace_project_folder (item : composite_transition_item equivocator_IM) (result: option (list (composite_transition_item IM) * equivocator_descriptors)) : option (list (composite_transition_item IM) * equivocator_descriptors) := match result with | None => None | Some (r, idescriptor) => match equivocators_transition_item_project idescriptor item with | None => None | Some (None, odescriptor) => Some (r, odescriptor) | Some (Some item', odescriptor) => Some (item' :: r, odescriptor) end end.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
eqv_descriptors: equivocator_descriptors
item: composite_transition_item equivocator_IM
itemi: vtransition_item (IM (projT1 (l item)))
descriptori: MachineDescriptor (IM (projT1 (l item)))
Hex: existing_equivocator_label (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item))
Hl: l itemi = existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) Hex
H1: input (composite_transition_item_projection equivocator_IM item) = input itemi ∧ output (composite_transition_item_projection equivocator_IM item) = output itemi ∧ equivocator_state_descriptor_project (destination (composite_transition_item_projection equivocator_IM item)) (eqv_descriptors (projT1 (l item))) = destination itemi ∧ descriptori = equivocator_label_descriptor (l (composite_transition_item_projection equivocator_IM item))existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (l (composite_transition_item_projection equivocator_IM item)) Hex)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)foldr equivocators_trace_project_folder None tr = Nonemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)foldr equivocators_trace_project_folder None tr = Nonemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: foldr equivocators_trace_project_folder None tr = Nonefoldr equivocators_trace_project_folder None (a :: tr) = Nonemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: foldr equivocators_trace_project_folder None tr = Noneequivocators_trace_project_folder a (foldr equivocators_trace_project_folder None tr) = Nonereflexivity. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: foldr equivocators_trace_project_folder None tr = Noneequivocators_trace_project_folder a None = Nonemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors∀ (trX' : list (composite_transition_item IM)) (eqv_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptorsfoldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) [] = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) [] = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
IHtr: ∀ (trX' : list (composite_transition_item IM)) (eqv_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptorsfoldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) (a :: tr) = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) (a :: tr) = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptorsfoldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) [] = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) [] = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptorsSome (itrX, ieqv_descriptors) = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), Some ([], ieqv_descriptors) = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptors
Htr: Some (itrX, ieqv_descriptors) = Some (trX', eqv_descriptors)∃ trX : list (composite_transition_item IM), Some ([], ieqv_descriptors) = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptors
Htr: ∃ trX : list (composite_transition_item IM), Some ([], ieqv_descriptors) = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrXSome (itrX, ieqv_descriptors) = Some (trX', eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptors
Htr: Some (itrX, ieqv_descriptors) = Some (trX', eqv_descriptors)∃ trX : list (composite_transition_item IM), Some ([], ieqv_descriptors) = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptors
Htr: Some (itrX, ieqv_descriptors) = Some (trX', eqv_descriptors)
H2: itrX = trX'
H3: ieqv_descriptors = eqv_descriptors∃ trX : list (composite_transition_item IM), Some ([], eqv_descriptors) = Some (trX, eqv_descriptors) ∧ trX' = trX ++ trX'message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptors
Htr: Some (trX', eqv_descriptors) = Some (trX', eqv_descriptors)∃ trX : list (composite_transition_item IM), Some ([], eqv_descriptors) = Some (trX, eqv_descriptors) ∧ trX' = trX ++ trX'split; reflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptors
Htr: Some (trX', eqv_descriptors) = Some (trX', eqv_descriptors)Some ([], eqv_descriptors) = Some ([], eqv_descriptors) ∧ trX' = [] ++ trX'message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptors
Htr: ∃ trX : list (composite_transition_item IM), Some ([], ieqv_descriptors) = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrXSome (itrX, ieqv_descriptors) = Some (trX', eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
HtrX: Some ([], ieqv_descriptors) = Some (trX, eqv_descriptors)
HtrX': trX' = trX ++ itrXSome (itrX, ieqv_descriptors) = Some (trX', eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
itrX: list (composite_transition_item IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
HtrX: Some ([], ieqv_descriptors) = Some (trX, eqv_descriptors)Some (itrX, ieqv_descriptors) = Some (trX ++ itrX, eqv_descriptors)reflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
itrX: list (composite_transition_item IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
HtrX: Some ([], ieqv_descriptors) = Some (trX, eqv_descriptors)
H2: [] = trX
H3: ieqv_descriptors = eqv_descriptorsSome (itrX, eqv_descriptors) = Some ([] ++ itrX, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
IHtr: ∀ (trX' : list (composite_transition_item IM)) (eqv_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptorsfoldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) (a :: tr) = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) (a :: tr) = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
IHtr: ∀ (trX' : list (composite_transition_item IM)) (eqv_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptorsequivocators_trace_project_folder a (foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr) = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), equivocators_trace_project_folder a (foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr) = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
pr_itrX_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_itrX_tr: pr_itrX_tr = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
IHtr: ∀ (trX' : list (composite_transition_item IM)) (eqv_descriptors : equivocator_descriptors), pr_itrX_tr = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptorsequivocators_trace_project_folder a pr_itrX_tr = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), equivocators_trace_project_folder a (foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr) = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
pr_itrX_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_itrX_tr: pr_itrX_tr = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
pr_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_tr: pr_tr = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
IHtr: ∀ (trX' : list (composite_transition_item IM)) (eqv_descriptors : equivocator_descriptors), pr_itrX_tr = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), pr_tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptorsequivocators_trace_project_folder a pr_itrX_tr = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), equivocators_trace_project_folder a pr_tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
pr_itrX_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_itrX_tr: pr_itrX_tr = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
pr_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_tr: pr_tr = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
IHtr: ∀ (trX' : list (composite_transition_item IM)) (eqv_descriptors : equivocator_descriptors), pr_itrX_tr = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), pr_tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptorsequivocators_trace_project_folder a pr_itrX_tr = Some (trX', eqv_descriptors) → ∃ trX : list (composite_transition_item IM), equivocators_trace_project_folder a pr_tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
pr_itrX_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_itrX_tr: pr_itrX_tr = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
pr_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_tr: pr_tr = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
IHtr: ∀ (trX' : list (composite_transition_item IM)) (eqv_descriptors : equivocator_descriptors), pr_itrX_tr = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), pr_tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptors(∃ trX : list (composite_transition_item IM), equivocators_trace_project_folder a pr_tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX) → equivocators_trace_project_folder a pr_itrX_tr = Some (trX', eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
pr_itrX_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_itrX_tr: pr_itrX_tr = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
pr_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_tr: pr_tr = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
IHtr: ∀ (trX' : list (composite_transition_item IM)) (eqv_descriptors : equivocator_descriptors), pr_itrX_tr = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), pr_tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptorsequivocators_trace_project_folder a pr_itrX_tr = Some (trX', eqv_descriptors) → ∃ trX : list (composite_transition_item IM), equivocators_trace_project_folder a pr_tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
pr_itrX_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_itrX_tr: pr_itrX_tr = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
pr_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_tr: pr_tr = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
IHtr: ∀ (trX' : list (composite_transition_item IM)) (eqv_descriptors : equivocator_descriptors), pr_itrX_tr = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), pr_tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptors
Htr: equivocators_trace_project_folder a pr_itrX_tr = Some (trX', eqv_descriptors)∃ trX : list (composite_transition_item IM), equivocators_trace_project_folder a pr_tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
tr1: list (composite_transition_item IM)
e1: equivocator_descriptors
Heqpr_itrX_tr: Some (tr1, e1) = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
pr_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_tr: pr_tr = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
IHtr: ∀ (trX' : list (composite_transition_item IM)) (eqv_descriptors : equivocator_descriptors), Some (tr1, e1) = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), pr_tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptors
Htr: equivocators_trace_project_folder a (Some (tr1, e1)) = Some (trX', eqv_descriptors)∃ trX : list (composite_transition_item IM), equivocators_trace_project_folder a pr_tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
tr1: list (composite_transition_item IM)
e1: equivocator_descriptors
Heqpr_itrX_tr: Some (tr1, e1) = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
pr_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_tr: pr_tr = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
IHtr: Some (tr1, e1) = Some (tr1, e1) ↔ (∃ trX : list (composite_transition_item IM), pr_tr = Some (trX, e1) ∧ tr1 = trX ++ itrX)
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptors
Htr: equivocators_trace_project_folder a (Some (tr1, e1)) = Some (trX', eqv_descriptors)∃ trX : list (composite_transition_item IM), equivocators_trace_project_folder a pr_tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
tr1: list (composite_transition_item IM)
e1: equivocator_descriptors
Heqpr_itrX_tr: Some (tr1, e1) = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
pr_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_tr: pr_tr = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
IHtr: Some (tr1, e1) = Some (tr1, e1) → ∃ trX : list (composite_transition_item IM), pr_tr = Some (trX, e1) ∧ tr1 = trX ++ itrX
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptors
Htr: equivocators_trace_project_folder a (Some (tr1, e1)) = Some (trX', eqv_descriptors)∃ trX : list (composite_transition_item IM), equivocators_trace_project_folder a pr_tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
tr1: list (composite_transition_item IM)
e1: equivocator_descriptors
Heqpr_itrX_tr: Some (tr1, e1) = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
pr_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_tr: pr_tr = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
IHtr: ∃ trX : list (composite_transition_item IM), pr_tr = Some (trX, e1) ∧ tr1 = trX ++ itrX
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptors
Htr: equivocators_trace_project_folder a (Some (tr1, e1)) = Some (trX', eqv_descriptors)∃ trX : list (composite_transition_item IM), equivocators_trace_project_folder a pr_tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
tr1: list (composite_transition_item IM)
e1: equivocator_descriptors
Heqpr_itrX_tr: Some (tr1, e1) = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
pr_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_tr: pr_tr = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
trX: list (composite_transition_item IM)
Hpr_tr: pr_tr = Some (trX, e1)
Htr1: tr1 = trX ++ itrX
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptors
Htr: equivocators_trace_project_folder a (Some (tr1, e1)) = Some (trX', eqv_descriptors)∃ trX : list (composite_transition_item IM), equivocators_trace_project_folder a pr_tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
tr1: list (composite_transition_item IM)
e1: equivocator_descriptors
Heqpr_itrX_tr: Some (tr1, e1) = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
pr_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
trX: list (composite_transition_item IM)
Heqpr_tr: Some (trX, e1) = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
Hpr_tr: pr_tr = Some (trX, e1)
Htr1: tr1 = trX ++ itrX
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptors
Htr: equivocators_trace_project_folder a (Some (tr1, e1)) = Some (trX', eqv_descriptors)∃ trX0 : list (composite_transition_item IM), equivocators_trace_project_folder a (Some (trX, e1)) = Some (trX0, eqv_descriptors) ∧ trX' = trX0 ++ itrXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
tr1: list (composite_transition_item IM)
e1: equivocator_descriptors
trX: list (composite_transition_item IM)
Heqpr_itrX_tr: Some (trX ++ itrX, e1) = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
pr_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_tr: Some (trX, e1) = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
Hpr_tr: pr_tr = Some (trX, e1)
Htr1: tr1 = trX ++ itrX
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptors
Htr: equivocators_trace_project_folder a (Some (trX ++ itrX, e1)) = Some (trX', eqv_descriptors)∃ trX0 : list (composite_transition_item IM), equivocators_trace_project_folder a (Some (trX, e1)) = Some (trX0, eqv_descriptors) ∧ trX' = trX0 ++ itrXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
tr1: list (composite_transition_item IM)
e1: equivocator_descriptors
trX: list (composite_transition_item IM)
Heqpr_itrX_tr: Some (trX ++ itrX, e1) = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
pr_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_tr: Some (trX, e1) = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
Hpr_tr: pr_tr = Some (trX, e1)
Htr1: tr1 = trX ++ itrX
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptors
Htr: match equivocators_transition_item_project e1 a with | Some (Some item', odescriptor) => Some (item' :: trX ++ itrX, odescriptor) | Some (None, odescriptor) => Some (trX ++ itrX, odescriptor) | None => None end = Some (trX', eqv_descriptors)∃ trX0 : list (composite_transition_item IM), equivocators_trace_project_folder a (Some (trX, e1)) = Some (trX0, eqv_descriptors) ∧ trX' = trX0 ++ itrXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
tr1: list (composite_transition_item IM)
e1: equivocator_descriptors
trX: list (composite_transition_item IM)
Heqpr_itrX_tr: Some (trX ++ itrX, e1) = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
pr_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_tr: Some (trX, e1) = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
Hpr_tr: pr_tr = Some (trX, e1)
Htr1: tr1 = trX ++ itrX
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptors
Htr: match equivocators_transition_item_project e1 a with | Some (Some item', odescriptor) => Some (item' :: trX ++ itrX, odescriptor) | Some (None, odescriptor) => Some (trX ++ itrX, odescriptor) | None => None end = Some (trX', eqv_descriptors)∃ trX0 : list (composite_transition_item IM), match equivocators_transition_item_project e1 a with | Some (Some item', odescriptor) => Some (item' :: trX, odescriptor) | Some (None, odescriptor) => Some (trX, odescriptor) | None => None end = Some (trX0, eqv_descriptors) ∧ trX' = trX0 ++ itrXdestruct oitem; inversion Htr; eexists _; split; reflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
tr1: list (composite_transition_item IM)
e1: equivocator_descriptors
trX: list (composite_transition_item IM)
Heqpr_itrX_tr: Some (trX ++ itrX, e1) = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
pr_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_tr: Some (trX, e1) = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
Hpr_tr: pr_tr = Some (trX, e1)
Htr1: tr1 = trX ++ itrX
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptors
oitem: option (composite_transition_item IM)
eqv_descriptors'': equivocator_descriptors
Ha: equivocators_transition_item_project e1 a = Some (oitem, eqv_descriptors'')
Htr: match oitem with | Some item' => Some (item' :: trX ++ itrX, eqv_descriptors'') | None => Some (trX ++ itrX, eqv_descriptors'') end = Some (trX', eqv_descriptors)∃ trX0 : list (composite_transition_item IM), match oitem with | Some item' => Some (item' :: trX, eqv_descriptors'') | None => Some (trX, eqv_descriptors'') end = Some (trX0, eqv_descriptors) ∧ trX' = trX0 ++ itrXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
pr_itrX_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_itrX_tr: pr_itrX_tr = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
pr_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_tr: pr_tr = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
IHtr: ∀ (trX' : list (composite_transition_item IM)) (eqv_descriptors : equivocator_descriptors), pr_itrX_tr = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), pr_tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptors(∃ trX : list (composite_transition_item IM), equivocators_trace_project_folder a pr_tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX) → equivocators_trace_project_folder a pr_itrX_tr = Some (trX', eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
pr_itrX_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_itrX_tr: pr_itrX_tr = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
pr_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_tr: pr_tr = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
IHtr: ∀ (trX' : list (composite_transition_item IM)) (eqv_descriptors : equivocator_descriptors), pr_itrX_tr = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), pr_tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)
trX': list (composite_transition_item IM)
eqv_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
Htr: equivocators_trace_project_folder a pr_tr = Some (trX, eqv_descriptors)
HtrX': trX' = trX ++ itrXequivocators_trace_project_folder a pr_itrX_tr = Some (trX', eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
pr_itrX_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_itrX_tr: pr_itrX_tr = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
pr_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_tr: pr_tr = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
IHtr: ∀ (trX' : list (composite_transition_item IM)) (eqv_descriptors : equivocator_descriptors), pr_itrX_tr = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), pr_tr = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)
eqv_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
Htr: equivocators_trace_project_folder a pr_tr = Some (trX, eqv_descriptors)equivocators_trace_project_folder a pr_itrX_tr = Some (trX ++ itrX, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
pr_itrX_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_itrX_tr: pr_itrX_tr = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
tr1: list (composite_transition_item IM)
e1: equivocator_descriptors
Heqpr_tr: Some (tr1, e1) = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
IHtr: ∀ (trX' : list (composite_transition_item IM)) (eqv_descriptors : equivocator_descriptors), pr_itrX_tr = Some (trX', eqv_descriptors) ↔ (∃ trX : list (composite_transition_item IM), Some (tr1, e1) = Some (trX, eqv_descriptors) ∧ trX' = trX ++ itrX)
eqv_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
Htr: equivocators_trace_project_folder a (Some (tr1, e1)) = Some (trX, eqv_descriptors)equivocators_trace_project_folder a pr_itrX_tr = Some (trX ++ itrX, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
pr_itrX_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_itrX_tr: pr_itrX_tr = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
tr1: list (composite_transition_item IM)
e1: equivocator_descriptors
Heqpr_tr: Some (tr1, e1) = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
IHtr: pr_itrX_tr = Some (tr1 ++ itrX, e1) ↔ (∃ trX : list (composite_transition_item IM), Some (tr1, e1) = Some (trX, e1) ∧ tr1 ++ itrX = trX ++ itrX)
eqv_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
Htr: equivocators_trace_project_folder a (Some (tr1, e1)) = Some (trX, eqv_descriptors)equivocators_trace_project_folder a pr_itrX_tr = Some (trX ++ itrX, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
pr_itrX_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_itrX_tr: pr_itrX_tr = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
tr1: list (composite_transition_item IM)
e1: equivocator_descriptors
Heqpr_tr: Some (tr1, e1) = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
IHtr: (∃ trX : list (composite_transition_item IM), Some (tr1, e1) = Some (trX, e1) ∧ tr1 ++ itrX = trX ++ itrX) → pr_itrX_tr = Some (tr1 ++ itrX, e1)
eqv_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
Htr: equivocators_trace_project_folder a (Some (tr1, e1)) = Some (trX, eqv_descriptors)equivocators_trace_project_folder a pr_itrX_tr = Some (trX ++ itrX, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
pr_itrX_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_itrX_tr: pr_itrX_tr = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
tr1: list (composite_transition_item IM)
e1: equivocator_descriptors
Heqpr_tr: Some (tr1, e1) = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
IHtr: (∃ trX : list (composite_transition_item IM), Some (tr1, e1) = Some (trX, e1) ∧ tr1 ++ itrX = trX ++ itrX) → pr_itrX_tr = Some (tr1 ++ itrX, e1)
eqv_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
Htr: equivocators_trace_project_folder a (Some (tr1, e1)) = Some (trX, eqv_descriptors)∃ trX : list (composite_transition_item IM), Some (tr1, e1) = Some (trX, e1) ∧ tr1 ++ itrX = trX ++ itrXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
pr_itrX_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_itrX_tr: pr_itrX_tr = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
tr1: list (composite_transition_item IM)
e1: equivocator_descriptors
Heqpr_tr: Some (tr1, e1) = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
eqv_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
Htr: equivocators_trace_project_folder a (Some (tr1, e1)) = Some (trX, eqv_descriptors)
IHtr: pr_itrX_tr = Some (tr1 ++ itrX, e1)equivocators_trace_project_folder a pr_itrX_tr = Some (trX ++ itrX, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
pr_itrX_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_itrX_tr: pr_itrX_tr = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
tr1: list (composite_transition_item IM)
e1: equivocator_descriptors
Heqpr_tr: Some (tr1, e1) = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
IHtr: (∃ trX : list (composite_transition_item IM), Some (tr1, e1) = Some (trX, e1) ∧ tr1 ++ itrX = trX ++ itrX) → pr_itrX_tr = Some (tr1 ++ itrX, e1)
eqv_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
Htr: equivocators_trace_project_folder a (Some (tr1, e1)) = Some (trX, eqv_descriptors)∃ trX : list (composite_transition_item IM), Some (tr1, e1) = Some (trX, e1) ∧ tr1 ++ itrX = trX ++ itrXsplit; reflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
pr_itrX_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_itrX_tr: pr_itrX_tr = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
tr1: list (composite_transition_item IM)
e1: equivocator_descriptors
Heqpr_tr: Some (tr1, e1) = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
IHtr: (∃ trX : list (composite_transition_item IM), Some (tr1, e1) = Some (trX, e1) ∧ tr1 ++ itrX = trX ++ itrX) → pr_itrX_tr = Some (tr1 ++ itrX, e1)
eqv_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
Htr: equivocators_trace_project_folder a (Some (tr1, e1)) = Some (trX, eqv_descriptors)Some (tr1, e1) = Some (?Goal0, e1) ∧ tr1 ++ itrX = ?Goal0 ++ itrXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
pr_itrX_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_itrX_tr: pr_itrX_tr = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
tr1: list (composite_transition_item IM)
e1: equivocator_descriptors
Heqpr_tr: Some (tr1, e1) = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
eqv_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
Htr: equivocators_trace_project_folder a (Some (tr1, e1)) = Some (trX, eqv_descriptors)
IHtr: pr_itrX_tr = Some (tr1 ++ itrX, e1)equivocators_trace_project_folder a pr_itrX_tr = Some (trX ++ itrX, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
pr_itrX_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_itrX_tr: pr_itrX_tr = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
tr1: list (composite_transition_item IM)
e1: equivocator_descriptors
Heqpr_tr: Some (tr1, e1) = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
eqv_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
Htr: equivocators_trace_project_folder a (Some (tr1, e1)) = Some (trX, eqv_descriptors)
IHtr: pr_itrX_tr = Some (tr1 ++ itrX, e1)equivocators_trace_project_folder a (Some (tr1 ++ itrX, e1)) = Some (trX ++ itrX, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
pr_itrX_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_itrX_tr: pr_itrX_tr = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
tr1: list (composite_transition_item IM)
e1: equivocator_descriptors
Heqpr_tr: Some (tr1, e1) = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
eqv_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
Htr: match equivocators_transition_item_project e1 a with | Some (Some item', odescriptor) => Some (item' :: tr1, odescriptor) | Some (None, odescriptor) => Some (tr1, odescriptor) | None => None end = Some (trX, eqv_descriptors)
IHtr: pr_itrX_tr = Some (tr1 ++ itrX, e1)match equivocators_transition_item_project e1 a with | Some (Some item', odescriptor) => Some (item' :: tr1 ++ itrX, odescriptor) | Some (None, odescriptor) => Some (tr1 ++ itrX, odescriptor) | None => None end = Some (trX ++ itrX, eqv_descriptors)destruct oitem as [item'|]; inversion Htr; reflexivity. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
a: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
itrX: list (composite_transition_item IM)
ieqv_descriptors: equivocator_descriptors
pr_itrX_tr: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqpr_itrX_tr: pr_itrX_tr = foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr
tr1: list (composite_transition_item IM)
e1: equivocator_descriptors
Heqpr_tr: Some (tr1, e1) = foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr
eqv_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
odescriptor: equivocator_descriptors
Ha: equivocators_transition_item_project e1 a = Some (oitem, odescriptor)
Htr: match oitem with | Some item' => Some (item' :: tr1, odescriptor) | None => Some (tr1, odescriptor) end = Some (trX, eqv_descriptors)
IHtr: pr_itrX_tr = Some (tr1 ++ itrX, e1)match oitem with | Some item' => Some (item' :: tr1 ++ itrX, odescriptor) | None => Some (tr1 ++ itrX, odescriptor) end = Some (trX ++ itrX, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
itrX, trX: list (composite_transition_item IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
Htr: foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr = Some (trX, eqv_descriptors)foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr = Some (trX ++ itrX, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
itrX, trX: list (composite_transition_item IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
Htr: foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr = Some (trX, eqv_descriptors)foldr equivocators_trace_project_folder (Some (itrX, ieqv_descriptors)) tr = Some (trX ++ itrX, eqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
itrX, trX: list (composite_transition_item IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
Htr: foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr = Some (trX, eqv_descriptors)∃ trX0 : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr = Some (trX0, eqv_descriptors) ∧ trX ++ itrX = trX0 ++ itrXsplit; [assumption|reflexivity]. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
itrX, trX: list (composite_transition_item IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
Htr: foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr = Some (trX, eqv_descriptors)foldr equivocators_trace_project_folder (Some ([], ieqv_descriptors)) tr = Some (trX, eqv_descriptors) ∧ trX ++ itrX = trX ++ itrX
The projection of an equivocators trace is obtained by traversing the
trace from right to left guided by the descriptors produced by
equivocators_transition_item_project and gathering all non-empty
transition_items it produces.
Definition equivocators_trace_project (eqv_descriptors : equivocator_descriptors) (tr : list (composite_transition_item equivocator_IM)) : option (list (composite_transition_item IM) * equivocator_descriptors) := fold_right equivocators_trace_project_folder (Some ([], eqv_descriptors)) tr.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
pre, suf: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)equivocators_trace_project eqv_descriptors (pre ++ suf) = Some (trX, ieqv_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' pre = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
pre, suf: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)equivocators_trace_project eqv_descriptors (pre ++ suf) = Some (trX, ieqv_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' pre = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
pre, suf: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)foldr equivocators_trace_project_folder (Some ([], eqv_descriptors)) (pre ++ suf) = Some (trX, ieqv_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), foldr equivocators_trace_project_folder (Some ([], eqv_descriptors)) suf = Some (sufX, eqv_descriptors') ∧ foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
pre, suf: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)foldr equivocators_trace_project_folder (foldr equivocators_trace_project_folder (Some ([], eqv_descriptors)) suf) pre = Some (trX, ieqv_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), foldr equivocators_trace_project_folder (Some ([], eqv_descriptors)) suf = Some (sufX, eqv_descriptors') ∧ foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
pre, suf: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)foldr equivocators_trace_project_folder (foldr equivocators_trace_project_folder (Some ([], eqv_descriptors)) suf) pre = Some (trX, ieqv_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), foldr equivocators_trace_project_folder (Some ([], eqv_descriptors)) suf = Some (sufX, eqv_descriptors') ∧ foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
pre, suf: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
r_sufX: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqr_sufX: r_sufX = foldr equivocators_trace_project_folder (Some ([], eqv_descriptors)) suffoldr equivocators_trace_project_folder r_sufX pre = Some (trX, ieqv_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), r_sufX = Some (sufX, eqv_descriptors') ∧ foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
pre, suf: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX, sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Heqr_sufX: Some (sufX, eqv_descriptors') = foldr equivocators_trace_project_folder (Some ([], eqv_descriptors)) suffoldr equivocators_trace_project_folder (Some (sufX, eqv_descriptors')) pre = Some (trX, ieqv_descriptors) ↔ (∃ (preX sufX0 : list (composite_transition_item IM)) (eqv_descriptors'0 : equivocator_descriptors), Some (sufX, eqv_descriptors') = Some (sufX0, eqv_descriptors'0) ∧ foldr equivocators_trace_project_folder (Some ([], eqv_descriptors'0)) pre = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX0)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
pre, suf: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX, sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Heqr_sufX: Some (sufX, eqv_descriptors') = foldr equivocators_trace_project_folder (Some ([], eqv_descriptors)) suf
Hadd: foldr equivocators_trace_project_folder (Some (sufX, eqv_descriptors')) pre = Some (trX, ieqv_descriptors) ↔ (∃ trX0 : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (trX0, ieqv_descriptors) ∧ trX = trX0 ++ sufX)foldr equivocators_trace_project_folder (Some (sufX, eqv_descriptors')) pre = Some (trX, ieqv_descriptors) ↔ (∃ (preX sufX0 : list (composite_transition_item IM)) (eqv_descriptors'0 : equivocator_descriptors), Some (sufX, eqv_descriptors') = Some (sufX0, eqv_descriptors'0) ∧ foldr equivocators_trace_project_folder (Some ([], eqv_descriptors'0)) pre = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX0)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
pre, suf: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX, sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Heqr_sufX: Some (sufX, eqv_descriptors') = foldr equivocators_trace_project_folder (Some ([], eqv_descriptors)) suf
Hadd: foldr equivocators_trace_project_folder (Some (sufX, eqv_descriptors')) pre = Some (trX, ieqv_descriptors) ↔ (∃ trX0 : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (trX0, ieqv_descriptors) ∧ trX = trX0 ++ sufX)(∃ trX0 : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (trX0, ieqv_descriptors) ∧ trX = trX0 ++ sufX) ↔ (∃ (preX sufX0 : list (composite_transition_item IM)) (eqv_descriptors'0 : equivocator_descriptors), Some (sufX, eqv_descriptors') = Some (sufX0, eqv_descriptors'0) ∧ foldr equivocators_trace_project_folder (Some ([], eqv_descriptors'0)) pre = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX0)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
pre, suf: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX, sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Heqr_sufX: Some (sufX, eqv_descriptors') = foldr equivocators_trace_project_folder (Some ([], eqv_descriptors)) suf
Hadd: foldr equivocators_trace_project_folder (Some (sufX, eqv_descriptors')) pre = Some (trX, ieqv_descriptors) ↔ (∃ trX0 : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (trX0, ieqv_descriptors) ∧ trX = trX0 ++ sufX)(∃ trX0 : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (trX0, ieqv_descriptors) ∧ trX = trX0 ++ sufX) → ∃ (preX sufX0 : list (composite_transition_item IM)) (eqv_descriptors'0 : equivocator_descriptors), Some (sufX, eqv_descriptors') = Some (sufX0, eqv_descriptors'0) ∧ foldr equivocators_trace_project_folder (Some ([], eqv_descriptors'0)) pre = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
pre, suf: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX, sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Heqr_sufX: Some (sufX, eqv_descriptors') = foldr equivocators_trace_project_folder (Some ([], eqv_descriptors)) suf
Hadd: foldr equivocators_trace_project_folder (Some (sufX, eqv_descriptors')) pre = Some (trX, ieqv_descriptors) ↔ (∃ trX0 : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (trX0, ieqv_descriptors) ∧ trX = trX0 ++ sufX)(∃ (preX sufX0 : list (composite_transition_item IM)) (eqv_descriptors'0 : equivocator_descriptors), Some (sufX, eqv_descriptors') = Some (sufX0, eqv_descriptors'0) ∧ foldr equivocators_trace_project_folder (Some ([], eqv_descriptors'0)) pre = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX0) → ∃ trX0 : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (trX0, ieqv_descriptors) ∧ trX = trX0 ++ sufXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
pre, suf: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX, sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Heqr_sufX: Some (sufX, eqv_descriptors') = foldr equivocators_trace_project_folder (Some ([], eqv_descriptors)) suf
Hadd: foldr equivocators_trace_project_folder (Some (sufX, eqv_descriptors')) pre = Some (trX, ieqv_descriptors) ↔ (∃ trX0 : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (trX0, ieqv_descriptors) ∧ trX = trX0 ++ sufX)(∃ trX0 : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (trX0, ieqv_descriptors) ∧ trX = trX0 ++ sufX) → ∃ (preX sufX0 : list (composite_transition_item IM)) (eqv_descriptors'0 : equivocator_descriptors), Some (sufX, eqv_descriptors') = Some (sufX0, eqv_descriptors'0) ∧ foldr equivocators_trace_project_folder (Some ([], eqv_descriptors'0)) pre = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
pre, suf: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX, sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Heqr_sufX: Some (sufX, eqv_descriptors') = foldr equivocators_trace_project_folder (Some ([], eqv_descriptors)) suf
Hadd: foldr equivocators_trace_project_folder (Some (sufX, eqv_descriptors')) pre = Some (trX, ieqv_descriptors) ↔ (∃ trX0 : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (trX0, ieqv_descriptors) ∧ trX = trX0 ++ sufX)
preX: list (composite_transition_item IM)
HpreX: foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (preX, ieqv_descriptors)
HtrX: trX = preX ++ sufX∃ (preX sufX0 : list (composite_transition_item IM)) (eqv_descriptors'0 : equivocator_descriptors), Some (sufX, eqv_descriptors') = Some (sufX0, eqv_descriptors'0) ∧ foldr equivocators_trace_project_folder (Some ([], eqv_descriptors'0)) pre = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
pre, suf: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX, sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Heqr_sufX: Some (sufX, eqv_descriptors') = foldr equivocators_trace_project_folder (Some ([], eqv_descriptors)) suf
Hadd: foldr equivocators_trace_project_folder (Some (sufX, eqv_descriptors')) pre = Some (trX, ieqv_descriptors) ↔ (∃ trX0 : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (trX0, ieqv_descriptors) ∧ trX = trX0 ++ sufX)
preX: list (composite_transition_item IM)
HpreX: foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (preX, ieqv_descriptors)
HtrX: trX = preX ++ sufXSome (sufX, eqv_descriptors') = Some (sufX, eqv_descriptors') ∧ foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufXsplit; assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
pre, suf: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX, sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Heqr_sufX: Some (sufX, eqv_descriptors') = foldr equivocators_trace_project_folder (Some ([], eqv_descriptors)) suf
Hadd: foldr equivocators_trace_project_folder (Some (sufX, eqv_descriptors')) pre = Some (trX, ieqv_descriptors) ↔ (∃ trX0 : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (trX0, ieqv_descriptors) ∧ trX = trX0 ++ sufX)
preX: list (composite_transition_item IM)
HpreX: foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (preX, ieqv_descriptors)
HtrX: trX = preX ++ sufXfoldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
pre, suf: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX, sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Heqr_sufX: Some (sufX, eqv_descriptors') = foldr equivocators_trace_project_folder (Some ([], eqv_descriptors)) suf
Hadd: foldr equivocators_trace_project_folder (Some (sufX, eqv_descriptors')) pre = Some (trX, ieqv_descriptors) ↔ (∃ trX0 : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (trX0, ieqv_descriptors) ∧ trX = trX0 ++ sufX)(∃ (preX sufX0 : list (composite_transition_item IM)) (eqv_descriptors'0 : equivocator_descriptors), Some (sufX, eqv_descriptors') = Some (sufX0, eqv_descriptors'0) ∧ foldr equivocators_trace_project_folder (Some ([], eqv_descriptors'0)) pre = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX0) → ∃ trX0 : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (trX0, ieqv_descriptors) ∧ trX = trX0 ++ sufXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
pre, suf: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX, sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Heqr_sufX: Some (sufX, eqv_descriptors') = foldr equivocators_trace_project_folder (Some ([], eqv_descriptors)) suf
Hadd: foldr equivocators_trace_project_folder (Some (sufX, eqv_descriptors')) pre = Some (trX, ieqv_descriptors) ↔ (∃ trX0 : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (trX0, ieqv_descriptors) ∧ trX = trX0 ++ sufX)
preX, _sufX: list (composite_transition_item IM)
_eqv_descriptors': equivocator_descriptors
Heq: Some (sufX, eqv_descriptors') = Some (_sufX, _eqv_descriptors')
Hpre: foldr equivocators_trace_project_folder (Some ([], _eqv_descriptors')) pre = Some (preX, ieqv_descriptors)
HtrX: trX = preX ++ _sufX∃ trX0 : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (trX0, ieqv_descriptors) ∧ trX = trX0 ++ sufXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
pre, suf: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX, sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Heqr_sufX: Some (sufX, eqv_descriptors') = foldr equivocators_trace_project_folder (Some ([], eqv_descriptors)) suf
Hadd: foldr equivocators_trace_project_folder (Some (sufX, eqv_descriptors')) pre = Some (trX, ieqv_descriptors) ↔ (∃ trX0 : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (trX0, ieqv_descriptors) ∧ trX = trX0 ++ sufX)
preX, _sufX: list (composite_transition_item IM)
_eqv_descriptors': equivocator_descriptors
Heq: Some (sufX, eqv_descriptors') = Some (_sufX, _eqv_descriptors')
Hpre: foldr equivocators_trace_project_folder (Some ([], _eqv_descriptors')) pre = Some (preX, ieqv_descriptors)
HtrX: trX = preX ++ _sufXfoldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
pre, suf: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX, sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Heqr_sufX: Some (sufX, eqv_descriptors') = foldr equivocators_trace_project_folder (Some ([], eqv_descriptors)) suf
Hadd: foldr equivocators_trace_project_folder (Some (sufX, eqv_descriptors')) pre = Some (trX, ieqv_descriptors) ↔ (∃ trX0 : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (trX0, ieqv_descriptors) ∧ trX = trX0 ++ sufX)
preX, _sufX: list (composite_transition_item IM)
_eqv_descriptors': equivocator_descriptors
Heq: Some (sufX, eqv_descriptors') = Some (_sufX, _eqv_descriptors')
Hpre: foldr equivocators_trace_project_folder (Some ([], _eqv_descriptors')) pre = Some (preX, ieqv_descriptors)
HtrX: trX = preX ++ _sufX
H2: sufX = _sufX
H3: eqv_descriptors' = _eqv_descriptors'foldr equivocators_trace_project_folder (Some ([], _eqv_descriptors')) pre = Some (preX, ieqv_descriptors) ∧ trX = preX ++ _sufXsplit; assumption. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
pre, suf: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
trX, sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Heqr_sufX: Some (sufX, eqv_descriptors') = foldr equivocators_trace_project_folder (Some ([], eqv_descriptors)) suf
Hadd: foldr equivocators_trace_project_folder (Some (sufX, eqv_descriptors')) pre = Some (trX, ieqv_descriptors) ↔ (∃ trX0 : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (trX0, ieqv_descriptors) ∧ trX = trX0 ++ sufX)
preX: list (composite_transition_item IM)
Hpre: foldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (preX, ieqv_descriptors)
Heq: Some (sufX, eqv_descriptors') = Some (sufX, eqv_descriptors')
HtrX: trX = preX ++ sufXfoldr equivocators_trace_project_folder (Some ([], eqv_descriptors')) pre = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX
For every transition_item of the projection of a trace over the composition
of equivocators, there exists a corresponding item in the original trace
which projects to it.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX, sufX: list (composite_transition_item IM)
itemX: composite_transition_item IMequivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX, sufX: list (composite_transition_item IM)
itemX: composite_transition_item IMequivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM∀ sufX : list (composite_transition_item IM), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
eqv_descriptors: equivocator_descriptors
sufX: list (composite_transition_item IM)equivocators_trace_project eqv_descriptors [] = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ [] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX: list (composite_transition_item IM)equivocators_trace_project eqv_descriptors (tr ++ [x]) = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
eqv_descriptors: equivocator_descriptors
sufX: list (composite_transition_item IM)equivocators_trace_project eqv_descriptors [] = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ [] = pre ++ [item] ++ sufdestruct preX; inversion Hnil.message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
Hnil: [] = preX ++ itemX :: sufX∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project ieqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ [] = pre ++ item :: sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX: list (composite_transition_item IM)equivocators_trace_project eqv_descriptors (tr ++ [x]) = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX: list (composite_transition_item IM)
Hsome: equivocators_trace_project eqv_descriptors (tr ++ [x]) = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors)∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX, trX', xX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hpr_x: equivocators_trace_project eqv_descriptors [x] = Some (xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
Heq: preX ++ [itemX] ++ sufX = trX' ++ xX∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX, trX', xX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hpr_x: match equivocators_transition_item_project eqv_descriptors x with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
Heq: preX ++ [itemX] ++ sufX = trX' ++ xX∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX, trX', xX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
ox: option (composite_transition_item IM)
descriptorx: equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (ox, descriptorx)
Hpr_x: match ox with | Some item' => Some ([item'], descriptorx) | None => Some ([], descriptorx) end = Some (xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
Heq: preX ++ [itemX] ++ sufX = trX' ++ xX∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX, trX': list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
ox: option (composite_transition_item IM)
descriptorx: equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (ox, descriptorx)
Hpr_x: match ox with | Some item' => Some ([item'], descriptorx) | None => Some ([], descriptorx) end = Some ([], eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
Heq: preX ++ [itemX] ++ sufX = trX' ++ []∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX, trX': list (composite_transition_item IM)
xX: composite_transition_item IM
_empty: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
ox: option (composite_transition_item IM)
descriptorx: equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (ox, descriptorx)
Hpr_x: match ox with | Some item' => Some ([item'], descriptorx) | None => Some ([], descriptorx) end = Some (xX :: _empty, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
Heq: preX ++ [itemX] ++ sufX = trX' ++ xX :: _empty∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX, trX': list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
ox: option (composite_transition_item IM)
descriptorx: equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (ox, descriptorx)
Hpr_x: match ox with | Some item' => Some ([item'], descriptorx) | None => Some ([], descriptorx) end = Some ([], eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
Heq: preX ++ [itemX] ++ sufX = trX' ++ []∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX, trX': list (composite_transition_item IM)
eqv_descriptors', descriptorx: equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (None, descriptorx)
Hpr_x: Some ([], descriptorx) = Some ([], eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
Heq: preX ++ [itemX] ++ sufX = trX' ++ []∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX, trX': list (composite_transition_item IM)
eqv_descriptors', descriptorx: equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (None, descriptorx)
Hpr_x: Some ([], descriptorx) = Some ([], eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
Heq: preX ++ [itemX] ++ sufX = trX' ++ []
H2: descriptorx = eqv_descriptors'∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX, trX': list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hpr_x: Some ([], eqv_descriptors') = Some ([], eqv_descriptors')
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (None, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
Heq: preX ++ [itemX] ++ sufX = trX' ++ []∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX, trX': list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (None, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
Heq: preX ++ [itemX] ++ sufX = trX' ++ []∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX, trX': list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (None, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
Heq: preX ++ [itemX] ++ sufX = trX'∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (None, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors)∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
IHtr: ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors' suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (None, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors)∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors' suf = Some (sufX, item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
Heqtr: tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (None, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors)∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors' suf = Some (sufX, item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
Heqtr: tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (None, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors)equivocators_trace_project eqv_descriptors (suf ++ [x]) = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ suf ++ [x]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors' suf = Some (sufX, item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
eqv_descriptors: equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (None, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' (pre ++ [item] ++ suf) = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors)equivocators_trace_project eqv_descriptors (suf ++ [x]) = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ (pre ++ [item] ++ suf) ++ [x] = pre ++ [item] ++ suf ++ [x]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors' suf = Some (sufX, item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
eqv_descriptors: equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (None, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' (pre ++ [item] ++ suf) = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors)equivocators_trace_project eqv_descriptors (suf ++ [x]) = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ ((pre ++ [item]) ++ suf) ++ [x] = ((pre ++ [item]) ++ suf) ++ [x]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors' suf = Some (sufX, item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
eqv_descriptors: equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (None, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' (pre ++ [item] ++ suf) = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors)equivocators_trace_project eqv_descriptors (suf ++ [x]) = Some (sufX, item_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors' suf = Some (sufX, item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
eqv_descriptors: equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (None, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' (pre ++ [item] ++ suf) = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors)∃ (preX sufX0 : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project eqv_descriptors [x] = Some (sufX0, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' suf = Some (preX, item_descriptors) ∧ sufX = preX ++ sufX0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors' suf = Some (sufX, item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
eqv_descriptors: equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (None, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' (pre ++ [item] ++ suf) = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors)equivocators_trace_project eqv_descriptors [x] = Some ([], eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' suf = Some (sufX, item_descriptors) ∧ sufX = sufX ++ []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors' suf = Some (sufX, item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
eqv_descriptors: equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (None, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' (pre ++ [item] ++ suf) = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors)equivocators_trace_project eqv_descriptors [x] = Some ([], eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' suf = Some (sufX, item_descriptors) ∧ sufX = sufXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors' suf = Some (sufX, item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
eqv_descriptors: equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (None, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' (pre ++ [item] ++ suf) = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors)equivocators_trace_project eqv_descriptors [x] = Some ([], eqv_descriptors')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors' suf = Some (sufX, item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
eqv_descriptors: equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (None, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' (pre ++ [item] ++ suf) = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors)match equivocators_transition_item_project eqv_descriptors x with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors')reflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors' suf = Some (sufX, item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
eqv_descriptors: equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (None, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' (pre ++ [item] ++ suf) = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors)Some ([], eqv_descriptors') = Some ([], eqv_descriptors')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX, trX': list (composite_transition_item IM)
xX: composite_transition_item IM
_empty: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
ox: option (composite_transition_item IM)
descriptorx: equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (ox, descriptorx)
Hpr_x: match ox with | Some item' => Some ([item'], descriptorx) | None => Some ([], descriptorx) end = Some (xX :: _empty, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
Heq: preX ++ [itemX] ++ sufX = trX' ++ xX :: _empty∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX, trX': list (composite_transition_item IM)
xX: composite_transition_item IM
_empty: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
c: composite_transition_item IM
descriptorx: equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some c, descriptorx)
Hpr_x: Some ([c], descriptorx) = Some (xX :: _empty, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
Heq: preX ++ [itemX] ++ sufX = trX' ++ xX :: _empty∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX, trX': list (composite_transition_item IM)
xX: composite_transition_item IM
_empty: list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors
c: composite_transition_item IM
descriptorx: equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some c, descriptorx)
Hpr_x: Some ([c], descriptorx) = Some (xX :: _empty, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
Heq: preX ++ [itemX] ++ sufX = trX' ++ xX :: _empty
H2: c = xX
H3: [] = _empty
H4: descriptorx = eqv_descriptors'∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX, trX': list (composite_transition_item IM)
xX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_x: Some ([xX], eqv_descriptors') = Some ([xX], eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
Heq: preX ++ [itemX] ++ sufX = trX' ++ [xX]∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX, trX': list (composite_transition_item IM)
xX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
Heq: preX ++ [itemX] ++ sufX = trX' ++ [xX]∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX, trX': list (composite_transition_item IM)
xX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
Heq: preX ++ [itemX] ++ [] = trX' ++ [xX]
Heq_sufX: sufX = []∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some ([], item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX, trX': list (composite_transition_item IM)
xX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
sufX': list (composite_transition_item IM)
_xX: composite_transition_item IM
Heq: preX ++ [itemX] ++ sufX' ++ [_xX] = trX' ++ [xX]
Heq_sufX: sufX = sufX' ++ [_xX]∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX' ++ [_xX], item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX, trX': list (composite_transition_item IM)
xX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
Heq: preX ++ [itemX] ++ [] = trX' ++ [xX]
Heq_sufX: sufX = []∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some ([], item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)
xX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
Heq: preX ++ [itemX] ++ [] = trX' ++ [xX]∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some ([], item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)
xX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
Heq: preX ++ [itemX] = trX' ++ [xX]∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some ([], item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)
xX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
Heq: preX = trX' ∧ itemX = xX∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some ([], item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)
xX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
H1: preX = trX'
H2: itemX = xX∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some ([], item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)
xX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (trX' ++ [xX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some xX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (trX', ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors, eqv_descriptors': equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some ([], item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some xX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (trX', ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)
xX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (trX' ++ [xX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some xX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (trX', ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors, eqv_descriptors': equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)equivocators_trace_project eqv_descriptors [] = Some ([], eqv_descriptors) ∧ equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors) ∧ tr ++ [x] = tr ++ [x] ++ []repeat split; assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)
xX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (trX' ++ [xX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some xX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (trX', ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors, eqv_descriptors': equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)equivocators_trace_project eqv_descriptors [] = Some ([], eqv_descriptors) ∧ equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors) ∧ tr ++ [x] = tr ++ [x]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
sufX, trX': list (composite_transition_item IM)
xX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
sufX': list (composite_transition_item IM)
_xX: composite_transition_item IM
Heq: preX ++ [itemX] ++ sufX' ++ [_xX] = trX' ++ [xX]
Heq_sufX: sufX = sufX' ++ [_xX]∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX' ++ [_xX], item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)
xX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
sufX': list (composite_transition_item IM)
_xX: composite_transition_item IM
Heq: preX ++ [itemX] ++ sufX' ++ [_xX] = trX' ++ [xX]∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX' ++ [_xX], item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)
xX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
sufX': list (composite_transition_item IM)
_xX: composite_transition_item IM
Heq: ((preX ++ [itemX]) ++ sufX') ++ [_xX] = trX' ++ [xX]∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX' ++ [_xX], item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)
xX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
sufX': list (composite_transition_item IM)
_xX: composite_transition_item IM
Heq: (preX ++ [itemX]) ++ sufX' = trX' ∧ _xX = xX∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX' ++ [_xX], item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)
xX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
sufX': list (composite_transition_item IM)
_xX: composite_transition_item IM
Heq: preX ++ [itemX] ++ sufX' = trX' ∧ _xX = xX∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX' ++ [_xX], item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
trX': list (composite_transition_item IM)
xX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (trX', ieqv_descriptors)
sufX': list (composite_transition_item IM)
_xX: composite_transition_item IM
H1: preX ++ [itemX] ++ sufX' = trX'
H2: _xX = xX∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX' ++ [_xX], item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
IHtr: ∀ (eqv_descriptors : equivocator_descriptors) (sufX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
xX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
sufX': list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (preX ++ [itemX] ++ sufX', ieqv_descriptors)∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX' ++ [xX], item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
sufX': list (composite_transition_item IM)
IHtr: ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors' suf = Some (sufX', item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
xX: composite_transition_item IM
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (preX ++ [itemX] ++ sufX', ieqv_descriptors)∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX' ++ [xX], item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
sufX': list (composite_transition_item IM)
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors' suf = Some (sufX', item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
Heqtr: tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
xX: composite_transition_item IM
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (preX ++ [itemX] ++ sufX', ieqv_descriptors)∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX' ++ [xX], item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
sufX': list (composite_transition_item IM)
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors' suf = Some (sufX', item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
Heqtr: tr = pre ++ [item] ++ suf
eqv_descriptors: equivocator_descriptors
xX: composite_transition_item IM
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' tr = Some (preX ++ [itemX] ++ sufX', ieqv_descriptors)equivocators_trace_project eqv_descriptors (suf ++ [x]) = Some (sufX' ++ [xX], item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr ++ [x] = pre ++ [item] ++ suf ++ [x]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
sufX': list (composite_transition_item IM)
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors' suf = Some (sufX', item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
eqv_descriptors: equivocator_descriptors
xX: composite_transition_item IM
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' (pre ++ [item] ++ suf) = Some (preX ++ [itemX] ++ sufX', ieqv_descriptors)equivocators_trace_project eqv_descriptors (suf ++ [x]) = Some (sufX' ++ [xX], item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ (pre ++ [item] ++ suf) ++ [x] = pre ++ [item] ++ suf ++ [x]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
sufX': list (composite_transition_item IM)
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors' suf = Some (sufX', item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
eqv_descriptors: equivocator_descriptors
xX: composite_transition_item IM
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' (pre ++ [item] ++ suf) = Some (preX ++ [itemX] ++ sufX', ieqv_descriptors)equivocators_trace_project eqv_descriptors (suf ++ [x]) = Some (sufX' ++ [xX], item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ ((pre ++ [item]) ++ suf) ++ [x] = ((pre ++ [item]) ++ suf) ++ [x]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
sufX': list (composite_transition_item IM)
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors' suf = Some (sufX', item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
eqv_descriptors: equivocator_descriptors
xX: composite_transition_item IM
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' (pre ++ [item] ++ suf) = Some (preX ++ [itemX] ++ sufX', ieqv_descriptors)equivocators_trace_project eqv_descriptors (suf ++ [x]) = Some (sufX' ++ [xX], item_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
sufX': list (composite_transition_item IM)
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors' suf = Some (sufX', item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
eqv_descriptors: equivocator_descriptors
xX: composite_transition_item IM
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' (pre ++ [item] ++ suf) = Some (preX ++ [itemX] ++ sufX', ieqv_descriptors)∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project eqv_descriptors [x] = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' suf = Some (preX, item_descriptors) ∧ sufX' ++ [xX] = preX ++ sufXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
sufX': list (composite_transition_item IM)
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors' suf = Some (sufX', item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
eqv_descriptors: equivocator_descriptors
xX: composite_transition_item IM
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' (pre ++ [item] ++ suf) = Some (preX ++ [itemX] ++ sufX', ieqv_descriptors)equivocators_trace_project eqv_descriptors [x] = Some ([xX], eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' suf = Some (sufX', item_descriptors) ∧ sufX' ++ [xX] = sufX' ++ [xX]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
sufX': list (composite_transition_item IM)
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors' suf = Some (sufX', item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
eqv_descriptors: equivocator_descriptors
xX: composite_transition_item IM
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' (pre ++ [item] ++ suf) = Some (preX ++ [itemX] ++ sufX', ieqv_descriptors)equivocators_trace_project eqv_descriptors [x] = Some ([xX], eqv_descriptors')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
sufX': list (composite_transition_item IM)
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors' suf = Some (sufX', item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
eqv_descriptors: equivocator_descriptors
xX: composite_transition_item IM
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' (pre ++ [item] ++ suf) = Some (preX ++ [itemX] ++ sufX', ieqv_descriptors)match equivocators_transition_item_project eqv_descriptors x with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([xX], eqv_descriptors')reflexivity. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
ieqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
eqv_descriptors': equivocator_descriptors
sufX': list (composite_transition_item IM)
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors' suf = Some (sufX', item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
eqv_descriptors: equivocator_descriptors
xX: composite_transition_item IM
Hpr_x_item: equivocators_transition_item_project eqv_descriptors x = Some (Some xX, eqv_descriptors')
Hpr_tr: equivocators_trace_project eqv_descriptors' (pre ++ [item] ++ suf) = Some (preX ++ [itemX] ++ sufX', ieqv_descriptors)Some ([xX], eqv_descriptors') = Some ([xX], eqv_descriptors')
A corrollary of the above, reflecting a split in the projection to the original trace.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX, sufX: list (composite_transition_item IM)equivocators_trace_project eqv_descriptors tr = Some (preX ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX, sufX: list (composite_transition_item IM)equivocators_trace_project eqv_descriptors tr = Some (preX ++ sufX, ieqv_descriptors) → ∃ (pre suf : list (composite_transition_item equivocator_IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX, sufX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project eqv_descriptors tr = Some (preX ++ sufX, ieqv_descriptors)∃ (pre suf : list (composite_transition_item equivocator_IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project eqv_descriptors tr = Some (preX ++ [], ieqv_descriptors)∃ (pre suf : list (composite_transition_item equivocator_IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some ([], eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project eqv_descriptors tr = Some (preX ++ itemX :: sufX, ieqv_descriptors)∃ (pre suf : list (composite_transition_item equivocator_IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (itemX :: sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project eqv_descriptors tr = Some (preX ++ [], ieqv_descriptors)∃ (pre suf : list (composite_transition_item equivocator_IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some ([], eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project eqv_descriptors tr = Some (preX, ieqv_descriptors)∃ (pre suf : list (composite_transition_item equivocator_IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some ([], eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project eqv_descriptors tr = Some (preX, ieqv_descriptors)equivocators_trace_project eqv_descriptors [] = Some ([], eqv_descriptors) ∧ equivocators_trace_project eqv_descriptors tr = Some (preX, ieqv_descriptors) ∧ tr = tr ++ []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project eqv_descriptors tr = Some (preX, ieqv_descriptors)equivocators_trace_project eqv_descriptors [] = Some ([], eqv_descriptors) ∧ equivocators_trace_project eqv_descriptors tr = Some (preX, ieqv_descriptors) ∧ tr = trassumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project eqv_descriptors tr = Some (preX, ieqv_descriptors)equivocators_trace_project eqv_descriptors tr = Some (preX, ieqv_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project eqv_descriptors tr = Some (preX ++ itemX :: sufX, ieqv_descriptors)∃ (pre suf : list (composite_transition_item equivocator_IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (itemX :: sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project eqv_descriptors tr = Some (preX ++ [itemX] ++ sufX, ieqv_descriptors)∃ (pre suf : list (composite_transition_item equivocator_IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (itemX :: sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
Hpr_tr: ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ suf∃ (pre suf : list (composite_transition_item equivocator_IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (itemX :: sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
Heqtr: tr = pre ++ [item] ++ suf∃ (pre suf : list (composite_transition_item equivocator_IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (itemX :: sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)
Heqtr: tr = pre ++ [item] ++ sufequivocators_trace_project eqv_descriptors ([item] ++ suf) = Some (itemX :: sufX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ tr = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)equivocators_trace_project eqv_descriptors ([item] ++ suf) = Some (itemX :: sufX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors) ∧ pre ++ [item] ++ suf = pre ++ [item] ++ sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)equivocators_trace_project eqv_descriptors ([item] ++ suf) = Some (itemX :: sufX, pre_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)∃ (preX sufX0 : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project eqv_descriptors suf = Some (sufX0, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' [item] = Some (preX, pre_descriptors) ∧ itemX :: sufX = preX ++ sufX0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_trace_project item_descriptors [item] = Some ([itemX], pre_descriptors) ∧ itemX :: sufX = [itemX] ++ sufXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)equivocators_trace_project item_descriptors [item] = Some ([itemX], pre_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)match equivocators_transition_item_project item_descriptors item with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([itemX], pre_descriptors)reflexivity. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
ieqv_descriptors, eqv_descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
itemX: composite_transition_item IM
sufX: list (composite_transition_item IM)
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_suf: equivocators_trace_project eqv_descriptors suf = Some (sufX, item_descriptors)
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hpr_pre: equivocators_trace_project pre_descriptors pre = Some (preX, ieqv_descriptors)Some ([itemX], pre_descriptors) = Some ([itemX], pre_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors, idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr
Hdescriptors: proper_equivocator_descriptors descriptors s
Hproject_tr: equivocators_trace_project descriptors tr = Some (trX, idescriptors)set_union (equivocating_indices IM (enum index) is) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors, idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr
Hdescriptors: proper_equivocator_descriptors descriptors s
Hproject_tr: equivocators_trace_project descriptors tr = Some (trX, idescriptors)set_union (equivocating_indices IM (enum index) is) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors, idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr
Hdescriptors: proper_equivocator_descriptors descriptors s∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) is) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) is) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si: state
Hsi: valid_state_prop (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors si → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors [] = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si, s: state
tr: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si s tr
sf: state
iom, oom: option message
l: label
Ht: input_valid_transition (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (s, iom) (sf, oom)
IHHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors sf → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors (tr ++ [ {| l := l; input := iom; destination := sf; output := oom |}]) = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) sf) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si: state
Hsi: valid_state_prop (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors si → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors [] = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si: state
Hsi: valid_state_prop (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors si
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project descriptors [] = Some (trX, idescriptors)set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si: state
Hsi: valid_state_prop (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors si
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project descriptors [] = Some (trX, idescriptors)
H2: [] = trX
H3: descriptors = idescriptorsset_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors)assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si: state
Hsi: valid_state_prop (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors si
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project descriptors [] = Some (trX, idescriptors)
H2: [] = trX
H3: descriptors = idescriptors
eqv: index
Heqv: eqv ∈ set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors)eqv ∈ set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si, s: state
tr: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si s tr
sf: state
iom, oom: option message
l: label
Ht: input_valid_transition (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (s, iom) (sf, oom)
IHHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors sf → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}]) = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) sf) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si, s: state
tr: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si s tr
sf: state
iom, oom: option message
l: label
Ht: input_valid_transition (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (s, iom) (sf, oom)
IHHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors sf → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors (tr ++ [x]) = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) sf) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si, s: state
tr: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si s tr
sf: state
iom, oom: option message
l: label
Ht: input_valid_transition (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (s, iom) (sf, oom)
IHHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors sf
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project descriptors (tr ++ [x]) = Some (trX, idescriptors)set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) sf) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si, s: state
tr: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si s tr
sf: state
iom, oom: option message
l: label
Ht: input_valid_transition (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (s, iom) (sf, oom)
IHHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors sf
trX: list (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project descriptors [x] = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufXset_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) sf) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si, s: state
tr: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si s tr
sf: state
iom, oom: option message
l: label
Ht: input_valid_transition (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (s, iom) (sf, oom)
IHHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors sf
trX, preX, sufX: list (composite_transition_item IM)
descriptors': equivocator_descriptors
Hproject_x: equivocators_trace_project descriptors [x] = Some (sufX, descriptors')
Hproject_tr: equivocators_trace_project descriptors' tr = Some (preX, idescriptors)set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) sf) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si, s: state
tr: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si s tr
sf: state
iom, oom: option message
l: label
Ht: input_valid_transition (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (s, iom) (sf, oom)
IHHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors sf
trX, preX, sufX: list (composite_transition_item IM)
descriptors': equivocator_descriptors
Hproject_x: match equivocators_transition_item_project descriptors x with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, descriptors')
Hproject_tr: equivocators_trace_project descriptors' tr = Some (preX, idescriptors)set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) sf) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si, s: state
tr: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si s tr
sf: state
iom, oom: option message
l: label
Ht: input_valid_transition (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (s, iom) (sf, oom)
IHHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors sf
trX, preX, sufX: list (composite_transition_item IM)
descriptors': equivocator_descriptors
oitemx: option (composite_transition_item IM)
_descriptors': equivocator_descriptors
Hpr_x: equivocators_transition_item_project descriptors x = Some (oitemx, _descriptors')
Hproject_x: match oitemx with | Some item' => Some ([item'], _descriptors') | None => Some ([], _descriptors') end = Some (sufX, descriptors')
Hproject_tr: equivocators_trace_project descriptors' tr = Some (preX, idescriptors)set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) sf) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si, s: state
tr: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si s tr
sf: state
iom, oom: option message
l: label
Ht: input_valid_transition (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (s, iom) (sf, oom)
IHHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors sf
trX, preX, sufX: list (composite_transition_item IM)
descriptors': equivocator_descriptors
oitemx: option (composite_transition_item IM)
Hproject_x: match oitemx with | Some item' => Some ([item'], descriptors') | None => Some ([], descriptors') end = Some (sufX, descriptors')
Hpr_x: equivocators_transition_item_project descriptors x = Some (oitemx, descriptors')
Hproject_tr: equivocators_trace_project descriptors' tr = Some (preX, idescriptors)set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) sf) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si, s: state
tr: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si s tr
sf: state
iom, oom: option message
l: label
Ht: input_valid_transition (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (s, iom) (sf, oom)
IHHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors sf
preX: list (composite_transition_item IM)
descriptors': equivocator_descriptors
oitemx: option (composite_transition_item IM)
Hpr_x: equivocators_transition_item_project descriptors x = Some (oitemx, descriptors')
Hproject_tr: equivocators_trace_project descriptors' tr = Some (preX, idescriptors)set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) sf) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si, s: state
tr: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si s tr
sf: state
iom, oom: option message
l: label
Hv: composite_valid equivocator_IM l (s, iom)
Ht: transition l (s, iom) = (sf, oom)
IHHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors sf
preX: list (composite_transition_item IM)
descriptors': equivocator_descriptors
oitemx: option (composite_transition_item IM)
Hpr_x: equivocators_transition_item_project descriptors x = Some (oitemx, descriptors')
Hproject_tr: equivocators_trace_project descriptors' tr = Some (preX, idescriptors)set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) sf) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si, s: state
tr: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si s tr
sf: state
iom, oom: option message
l: label
Hv: composite_valid equivocator_IM l (s, iom)
Ht: transition l (s, iom) = (sf, oom)
IHHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors sf
preX: list (composite_transition_item IM)
descriptors': equivocator_descriptors
oitemx: option (composite_transition_item IM)
Hpr_x: equivocators_transition_item_project descriptors x = Some (oitemx, descriptors')
Hproject_tr: equivocators_trace_project descriptors' tr = Some (preX, idescriptors)
Hx_preserves: set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors') ⊆ set_union (equivocating_indices IM (enum index) (destination x)) (newmachine_descriptors_list IM (enum index) descriptors)set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) sf) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si, s: state
tr: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si s tr
sf: state
iom, oom: option message
l: label
Hv: composite_valid equivocator_IM l (s, iom)
Ht: transition l (s, iom) = (sf, oom)
IHHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors sf
preX: list (composite_transition_item IM)
descriptors': equivocator_descriptors
oitemx: option (composite_transition_item IM)
Hpr_x: equivocators_transition_item_project descriptors x = Some (oitemx, descriptors')
Hproject_tr: equivocators_trace_project descriptors' tr = Some (preX, idescriptors)
Hx_preserves: set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors') ⊆ set_union (equivocating_indices IM (enum index) (destination x)) (newmachine_descriptors_list IM (enum index) descriptors)
Hpr_x_char: ∃ (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_transition_item_project descriptors x = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l x))) (projT2 (VLSM.l x)), existT (projT1 (VLSM.l x)) (existing_equivocator_label_extract (IM (projT1 (VLSM.l x))) (projT2 (VLSM.l x)) Hex) = VLSM.l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project descriptors (destination x) = destination itemx ∧ eqv_descriptors' (projT1 (VLSM.l x)) = equivocator_label_descriptor (projT2 (VLSM.l x)) | None => True end ∧ (∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (VLSM.l x) (s, input x) → composite_transition equivocator_IM (VLSM.l x) (s, input x) = (destination x, output x) → proper_equivocator_descriptors eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update descriptors (projT1 (VLSM.l x)) (eqv_descriptors' (projT1 (VLSM.l x))) ∧ s = state_update equivocator_IM (destination x) (projT1 (VLSM.l x)) (s (projT1 (VLSM.l x))) ∧ previous_state_descriptor_prop (IM (projT1 (VLSM.l x))) (descriptors (projT1 (VLSM.l x))) (s (projT1 (VLSM.l x))) (eqv_descriptors' (projT1 (VLSM.l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition IM (VLSM.l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project descriptors (destination x) = equivocators_state_project eqv_descriptors' s end)set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) sf) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si, s: state
tr: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si s tr
sf: state
iom, oom: option message
l: label
Hv: composite_valid equivocator_IM l (s, iom)
Ht: transition l (s, iom) = (sf, oom)
IHHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors sf
preX: list (composite_transition_item IM)
descriptors': equivocator_descriptors
oitemx: option (composite_transition_item IM)
Hpr_x: equivocators_transition_item_project descriptors x = Some (oitemx, descriptors')
Hproject_tr: equivocators_trace_project descriptors' tr = Some (preX, idescriptors)
Hx_preserves: set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors') ⊆ set_union (equivocating_indices IM (enum index) (destination x)) (newmachine_descriptors_list IM (enum index) descriptors)
Hpr_x_char: ∃ (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), Some (oitemx, descriptors') = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l x))) (projT2 (VLSM.l x)), existT (projT1 (VLSM.l x)) (existing_equivocator_label_extract (IM (projT1 (VLSM.l x))) (projT2 (VLSM.l x)) Hex) = VLSM.l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project descriptors (destination x) = destination itemx ∧ eqv_descriptors' (projT1 (VLSM.l x)) = equivocator_label_descriptor (projT2 (VLSM.l x)) | None => True end ∧ (∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (VLSM.l x) (s, input x) → composite_transition equivocator_IM (VLSM.l x) (s, input x) = (destination x, output x) → proper_equivocator_descriptors eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update descriptors (projT1 (VLSM.l x)) (eqv_descriptors' (projT1 (VLSM.l x))) ∧ s = state_update equivocator_IM (destination x) (projT1 (VLSM.l x)) (s (projT1 (VLSM.l x))) ∧ previous_state_descriptor_prop (IM (projT1 (VLSM.l x))) (descriptors (projT1 (VLSM.l x))) (s (projT1 (VLSM.l x))) (eqv_descriptors' (projT1 (VLSM.l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition IM (VLSM.l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project descriptors (destination x) = equivocators_state_project eqv_descriptors' s end)set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) sf) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si, s: state
tr: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si s tr
sf: state
iom, oom: option message
l: label
Hv: composite_valid equivocator_IM l (s, iom)
Ht: transition l (s, iom) = (sf, oom)
IHHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors sf
preX: list (composite_transition_item IM)
descriptors': equivocator_descriptors
oitemx: option (composite_transition_item IM)
Hpr_x: equivocators_transition_item_project descriptors x = Some (oitemx, descriptors')
Hproject_tr: equivocators_trace_project descriptors' tr = Some (preX, idescriptors)
Hx_preserves: set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors') ⊆ set_union (equivocating_indices IM (enum index) (destination x)) (newmachine_descriptors_list IM (enum index) descriptors)
Hchar2: ∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (VLSM.l x) (s, input x) → composite_transition equivocator_IM (VLSM.l x) (s, input x) = (destination x, output x) → proper_equivocator_descriptors descriptors' s ∧ descriptors' = equivocator_descriptors_update descriptors (projT1 (VLSM.l x)) (descriptors' (projT1 (VLSM.l x))) ∧ s = state_update equivocator_IM (destination x) (projT1 (VLSM.l x)) (s (projT1 (VLSM.l x))) ∧ previous_state_descriptor_prop (IM (projT1 (VLSM.l x))) (descriptors (projT1 (VLSM.l x))) (s (projT1 (VLSM.l x))) (descriptors' (projT1 (VLSM.l x))) ∧ match oitemx with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project descriptors' s → composite_valid IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project descriptors (destination x) = equivocators_state_project descriptors' s endset_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) sf) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si, s: state
tr: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si s tr
sf: state
iom, oom: option message
l: label
Hv: composite_valid equivocator_IM l (s, iom)
Ht: transition l (s, iom) = (sf, oom)
IHHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors sf
preX: list (composite_transition_item IM)
descriptors': equivocator_descriptors
oitemx: option (composite_transition_item IM)
Hpr_x: equivocators_transition_item_project descriptors x = Some (oitemx, descriptors')
Hproject_tr: equivocators_trace_project descriptors' tr = Some (preX, idescriptors)
Hx_preserves: set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors') ⊆ set_union (equivocating_indices IM (enum index) (destination x)) (newmachine_descriptors_list IM (enum index) descriptors)
Hdescriptors': proper_equivocator_descriptors descriptors' sset_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) sf) (newmachine_descriptors_list IM (enum index) descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si, s: state
tr: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si s tr
sf: state
iom, oom: option message
l: label
Hv: composite_valid equivocator_IM l (s, iom)
Ht: transition l (s, iom) = (sf, oom)
descriptors': equivocator_descriptors
IHHtr: set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors')
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors sf
preX: list (composite_transition_item IM)
oitemx: option (composite_transition_item IM)
Hpr_x: equivocators_transition_item_project descriptors x = Some (oitemx, descriptors')
Hproject_tr: equivocators_trace_project descriptors' tr = Some (preX, idescriptors)
Hx_preserves: set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors') ⊆ set_union (equivocating_indices IM (enum index) (destination x)) (newmachine_descriptors_list IM (enum index) descriptors)
Hdescriptors': proper_equivocator_descriptors descriptors' sset_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) sf) (newmachine_descriptors_list IM (enum index) descriptors)apply transitivity. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
si, s: state
tr: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) si s tr
sf: state
iom, oom: option message
l: label
Hv: composite_valid equivocator_IM l (s, iom)
Ht: transition l (s, iom) = (sf, oom)
descriptors': equivocator_descriptors
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors sf
preX: list (composite_transition_item IM)
oitemx: option (composite_transition_item IM)
Hpr_x: equivocators_transition_item_project descriptors x = Some (oitemx, descriptors')
Hproject_tr: equivocators_trace_project descriptors' tr = Some (preX, idescriptors)
Hdescriptors': proper_equivocator_descriptors descriptors' sset_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors') → set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors') ⊆ set_union (equivocating_indices IM (enum index) (destination x)) (newmachine_descriptors_list IM (enum index) descriptors) → set_union (equivocating_indices IM (enum index) si) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) sf) (newmachine_descriptors_list IM (enum index) descriptors)
The state and descriptors obtained after applying equivocators_trace_project
on a pre-loaded valid trace satisfy the previous_state_descriptor_property.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors, idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr
Hdescriptors: proper_equivocator_descriptors descriptors s
Hproject_tr: equivocators_trace_project descriptors tr = Some (trX, idescriptors)∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors, idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr
Hdescriptors: proper_equivocator_descriptors descriptors s
Hproject_tr: equivocators_trace_project descriptors tr = Some (trX, idescriptors)∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors, idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr
Hdescriptors: proper_equivocator_descriptors descriptors s∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM∀ s : composite_state equivocator_IM, finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr → ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s []
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project descriptors [] = Some (trX, idescriptors)
eqv: indexprevious_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ s : composite_state equivocator_IM, finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr → ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s (tr ++ [x])
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project descriptors (tr ++ [x]) = Some (trX, idescriptors)
eqv: indexprevious_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s []
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project descriptors [] = Some (trX, idescriptors)
eqv: indexprevious_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s []
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project descriptors [] = Some (trX, idescriptors)
eqv: index
H2: [] = trX
H3: descriptors = idescriptorsprevious_state_descriptor_prop (IM eqv) (idescriptors eqv) (is eqv) (idescriptors eqv)destruct (idescriptors eqv); simpl; [reflexivity|lia].message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s []
Hproject_tr: equivocators_trace_project idescriptors [] = Some ([], idescriptors)
Hdescriptors: proper_equivocator_descriptors idescriptors s
eqv: indexprevious_state_descriptor_prop (IM eqv) (idescriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ s : composite_state equivocator_IM, finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr → ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s (tr ++ [x])
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project descriptors (tr ++ [x]) = Some (trX, idescriptors)
eqv: indexprevious_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ s : composite_state equivocator_IM, finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr → ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s (tr ++ [x])
Heq_s: finite_trace_last is (tr ++ [x]) = s
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project descriptors (tr ++ [x]) = Some (trX, idescriptors)
eqv: indexprevious_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ s : composite_state equivocator_IM, finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr → ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s (tr ++ [x])
Heq_s: destination x = s
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project descriptors (tr ++ [x]) = Some (trX, idescriptors)
eqv: indexprevious_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ s : composite_state equivocator_IM, finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr → ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (destination x) (tr ++ [x])
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination x)
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project descriptors (tr ++ [x]) = Some (trX, idescriptors)
eqv: indexprevious_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ s : composite_state equivocator_IM, finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr → ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr ∧ finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) (finite_trace_last is tr) (destination x) [x]
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination x)
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project descriptors (tr ++ [x]) = Some (trX, idescriptors)
eqv: indexprevious_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ s : composite_state equivocator_IM, finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr → ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
Hx: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) (finite_trace_last is tr) (destination x) [x]
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination x)
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project descriptors (tr ++ [x]) = Some (trX, idescriptors)
eqv: indexprevious_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ s : composite_state equivocator_IM, finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr → ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
Hx: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) (finite_trace_last is tr) (destination x) [x]
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination x)
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project descriptors (tr ++ [x]) = Some (trX, idescriptors)
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ s : composite_state equivocator_IM, finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr → ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors s → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
Hx: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) (finite_trace_last is tr) (destination x) [x]
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination x)
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project descriptors (tr ++ [x]) = Some (trX, idescriptors)
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination x eqv)previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors (finite_trace_last is tr) → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
Hx: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) (finite_trace_last is tr) (destination x) [x]
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination x)
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project descriptors (tr ++ [x]) = Some (trX, idescriptors)
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination x eqv)previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors (finite_trace_last is tr) → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
Hx: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) (finite_trace_last is tr) (destination x) [x]
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination x)
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project descriptors (tr ++ [x]) = Some (trX, idescriptors)
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination x eqv)
Hproperx: proper_equivocator_descriptors descriptors (destination x) → ∃ (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_transition_item_project descriptors x = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l x))) (projT2 (l x)), existT (projT1 (l x)) (existing_equivocator_label_extract (IM (projT1 (l x))) (projT2 (l x)) Hex) = l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project descriptors (destination x) = destination itemx ∧ eqv_descriptors' (projT1 (l x)) = equivocator_label_descriptor (projT2 (l x)) | None => True end ∧ (∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l x) (s, input x) → composite_transition equivocator_IM (l x) (s, input x) = (destination x, output x) → proper_equivocator_descriptors eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update descriptors (projT1 (l x)) (eqv_descriptors' (projT1 (l x))) ∧ s = state_update equivocator_IM (destination x) (projT1 (l x)) (s (projT1 (l x))) ∧ previous_state_descriptor_prop (IM (projT1 (l x))) (descriptors (projT1 (l x))) (s (projT1 (l x))) (eqv_descriptors' (projT1 (l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project descriptors (destination x) = equivocators_state_project eqv_descriptors' s end)previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors (finite_trace_last is tr) → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
Hx: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) (finite_trace_last is tr) (destination x) [x]
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination x)
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project descriptors (tr ++ [x]) = Some (trX, idescriptors)
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination x eqv)
Hproperx: ∃ (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_transition_item_project descriptors x = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l x))) (projT2 (l x)), existT (projT1 (l x)) (existing_equivocator_label_extract (IM (projT1 (l x))) (projT2 (l x)) Hex) = l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project descriptors (destination x) = destination itemx ∧ eqv_descriptors' (projT1 (l x)) = equivocator_label_descriptor (projT2 (l x)) | None => True end ∧ (∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l x) (s, input x) → composite_transition equivocator_IM (l x) (s, input x) = (destination x, output x) → proper_equivocator_descriptors eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update descriptors (projT1 (l x)) (eqv_descriptors' (projT1 (l x))) ∧ s = state_update equivocator_IM (destination x) (projT1 (l x)) (s (projT1 (l x))) ∧ previous_state_descriptor_prop (IM (projT1 (l x))) (descriptors (projT1 (l x))) (s (projT1 (l x))) (eqv_descriptors' (projT1 (l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project descriptors (destination x) = equivocators_state_project eqv_descriptors' s end)previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors (finite_trace_last is tr) → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
Hx: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) (finite_trace_last is tr) (destination x) [x]
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination x)
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project descriptors (tr ++ [x]) = Some (trX, idescriptors)
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination x eqv)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hprojectx: equivocators_transition_item_project descriptors x = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l x))) (projT2 (l x)), existT (projT1 (l x)) (existing_equivocator_label_extract (IM (projT1 (l x))) (projT2 (l x)) Hex) = l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project descriptors (destination x) = destination itemx ∧ final_descriptors' (projT1 (l x)) = equivocator_label_descriptor (projT2 (l x)) | None => True end
Hproperx: ∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l x) (s, input x) → composite_transition equivocator_IM (l x) (s, input x) = (destination x, output x) → proper_equivocator_descriptors final_descriptors' s ∧ final_descriptors' = equivocator_descriptors_update descriptors (projT1 (l x)) (final_descriptors' (projT1 (l x))) ∧ s = state_update equivocator_IM (destination x) (projT1 (l x)) (s (projT1 (l x))) ∧ previous_state_descriptor_prop (IM (projT1 (l x))) (descriptors (projT1 (l x))) (s (projT1 (l x))) (final_descriptors' (projT1 (l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project descriptors (destination x) = equivocators_state_project final_descriptors' s endprevious_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors (finite_trace_last is tr) → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
Hx: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) (finite_trace_last is tr) (destination x) [x]
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination x)
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project descriptors (tr ++ [x]) = Some (trX, idescriptors)
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination x eqv)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hprojectx: equivocators_transition_item_project descriptors x = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l x))) (projT2 (l x)), existT (projT1 (l x)) (existing_equivocator_label_extract (IM (projT1 (l x))) (projT2 (l x)) Hex) = l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project descriptors (destination x) = destination itemx ∧ final_descriptors' (projT1 (l x)) = equivocator_label_descriptor (projT2 (l x)) | None => True end
Hproperx: composite_valid equivocator_IM (l x) (finite_trace_last is tr, input x) → composite_transition equivocator_IM (l x) (finite_trace_last is tr, input x) = (destination x, output x) → proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update descriptors (projT1 (l x)) (final_descriptors' (projT1 (l x))) ∧ finite_trace_last is tr = state_update equivocator_IM (destination x) (projT1 (l x)) (finite_trace_last is tr (projT1 (l x))) ∧ previous_state_descriptor_prop (IM (projT1 (l x))) (descriptors (projT1 (l x))) (finite_trace_last is tr (projT1 (l x))) (final_descriptors' (projT1 (l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project descriptors (destination x) = equivocators_state_project final_descriptors' (finite_trace_last is tr) endprevious_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors (finite_trace_last is tr) → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
Hx: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) (finite_trace_last is tr) (destination x) [x]
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination x)
trX: list (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project descriptors [x] = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination x eqv)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hprojectx: equivocators_transition_item_project descriptors x = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l x))) (projT2 (l x)), existT (projT1 (l x)) (existing_equivocator_label_extract (IM (projT1 (l x))) (projT2 (l x)) Hex) = l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project descriptors (destination x) = destination itemx ∧ final_descriptors' (projT1 (l x)) = equivocator_label_descriptor (projT2 (l x)) | None => True end
Hproperx: composite_valid equivocator_IM (l x) (finite_trace_last is tr, input x) → composite_transition equivocator_IM (l x) (finite_trace_last is tr, input x) = (destination x, output x) → proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update descriptors (projT1 (l x)) (final_descriptors' (projT1 (l x))) ∧ finite_trace_last is tr = state_update equivocator_IM (destination x) (projT1 (l x)) (finite_trace_last is tr (projT1 (l x))) ∧ previous_state_descriptor_prop (IM (projT1 (l x))) (descriptors (projT1 (l x))) (finite_trace_last is tr (projT1 (l x))) (final_descriptors' (projT1 (l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project descriptors (destination x) = equivocators_state_project final_descriptors' (finite_trace_last is tr) endprevious_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors (finite_trace_last is tr) → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
Hx: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) (finite_trace_last is tr) (destination x) [x]
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination x)
trX: list (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project descriptors x with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination x eqv)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hprojectx: equivocators_transition_item_project descriptors x = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l x))) (projT2 (l x)), existT (projT1 (l x)) (existing_equivocator_label_extract (IM (projT1 (l x))) (projT2 (l x)) Hex) = l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project descriptors (destination x) = destination itemx ∧ final_descriptors' (projT1 (l x)) = equivocator_label_descriptor (projT2 (l x)) | None => True end
Hproperx: (let (i, li) := l x in vvalid (equivocator_IM i) li (finite_trace_last is tr i, input x)) → (let (i, li) := l x in let (si', om') := vtransition (equivocator_IM i) li (finite_trace_last is tr i, input x) in (state_update equivocator_IM (finite_trace_last is tr) i si', om')) = (destination x, output x) → proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update descriptors (projT1 (l x)) (final_descriptors' (projT1 (l x))) ∧ finite_trace_last is tr = state_update equivocator_IM (destination x) (projT1 (l x)) (finite_trace_last is tr (projT1 (l x))) ∧ previous_state_descriptor_prop (IM (projT1 (l x))) (descriptors (projT1 (l x))) (finite_trace_last is tr (projT1 (l x))) (final_descriptors' (projT1 (l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors (destination x) = equivocators_state_project final_descriptors' (finite_trace_last is tr) endprevious_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors (finite_trace_last is tr) → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
Hx: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) (finite_trace_last is tr) (destination x) [x]
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination x)
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination x eqv)
Hprojectx: equivocators_transition_item_project descriptors x = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l x))) (projT2 (l x)), existT (projT1 (l x)) (existing_equivocator_label_extract (IM (projT1 (l x))) (projT2 (l x)) Hex) = l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project descriptors (destination x) = destination itemx ∧ final_descriptors' (projT1 (l x)) = equivocator_label_descriptor (projT2 (l x)) | None => True end
Hproperx: (let (i, li) := l x in vvalid (equivocator_IM i) li (finite_trace_last is tr i, input x)) → (let (i, li) := l x in let (si', om') := vtransition (equivocator_IM i) li (finite_trace_last is tr i, input x) in (state_update equivocator_IM (finite_trace_last is tr) i si', om')) = (destination x, output x) → proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update descriptors (projT1 (l x)) (final_descriptors' (projT1 (l x))) ∧ finite_trace_last is tr = state_update equivocator_IM (destination x) (projT1 (l x)) (finite_trace_last is tr (projT1 (l x))) ∧ previous_state_descriptor_prop (IM (projT1 (l x))) (descriptors (projT1 (l x))) (finite_trace_last is tr (projT1 (l x))) (final_descriptors' (projT1 (l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors (destination x) = equivocators_state_project final_descriptors' (finite_trace_last is tr) endprevious_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors (finite_trace_last is tr) → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
Hx: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) (finite_trace_last is tr) (destination x) [x]
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination x)
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination x eqv)
Hprojectx: equivocators_transition_item_project descriptors x = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l x))) (projT2 (VLSM.l x)), existT (projT1 (VLSM.l x)) (existing_equivocator_label_extract (IM (projT1 (VLSM.l x))) (projT2 (VLSM.l x)) Hex) = VLSM.l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project descriptors (destination x) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l x)) = equivocator_label_descriptor (projT2 (VLSM.l x)) | None => True end
Hproperx: (let (i, li) := VLSM.l x in vvalid (equivocator_IM i) li (finite_trace_last is tr i, input x)) → (let (i, li) := VLSM.l x in let (si', om') := vtransition (equivocator_IM i) li (finite_trace_last is tr i, input x) in (state_update equivocator_IM (finite_trace_last is tr) i si', om')) = (destination x, output x) → proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update descriptors (projT1 (VLSM.l x)) (final_descriptors' (projT1 (VLSM.l x))) ∧ finite_trace_last is tr = state_update equivocator_IM (destination x) (projT1 (VLSM.l x)) (finite_trace_last is tr (projT1 (VLSM.l x))) ∧ previous_state_descriptor_prop (IM (projT1 (VLSM.l x))) (descriptors (projT1 (VLSM.l x))) (finite_trace_last is tr (projT1 (VLSM.l x))) (final_descriptors' (projT1 (VLSM.l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors (destination x) = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
s, f: state
tl: list transition_item
s': state
iom, oom: option message
l: label
Htl: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) s (destination {| l := l; input := iom; destination := s; output := oom |}) []
Ht: input_valid_transition (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (finite_trace_last is tr, iom) (s, oom)
H1: s' = finite_trace_last is tr
H2: f = destination x
H4: {| l := l; input := iom; destination := s; output := oom |} = x
H5: tl = []previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors (finite_trace_last is tr) → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: state
iom, oom: option message
l: label
Hx: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) (finite_trace_last is tr) (destination {| l := l; input := iom; destination := s; output := oom |}) [{| l := l; input := iom; destination := s; output := oom |}]
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproperx: (let (i, li) := VLSM.l {| l := l; input := iom; destination := s; output := oom |} in vvalid (equivocator_IM i) li (finite_trace_last is tr i, input {| l := l; input := iom; destination := s; output := oom |})) → (let (i, li) := VLSM.l {| l := l; input := iom; destination := s; output := oom |} in let (si', om') := vtransition (equivocator_IM i) li (finite_trace_last is tr i, input {| l := l; input := iom; destination := s; output := oom |}) in (state_update equivocator_IM (finite_trace_last is tr) i si', om')) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination {| l := l; input := iom; destination := s; output := oom |} eqv)
Htl: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) s (destination {| l := l; input := iom; destination := s; output := oom |}) []
Ht: input_valid_transition (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (finite_trace_last is tr, iom) (s, oom)previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors (finite_trace_last is tr) → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: state
iom, oom: option message
l: label
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproperx: (let (i, li) := VLSM.l {| l := l; input := iom; destination := s; output := oom |} in vvalid (equivocator_IM i) li (finite_trace_last is tr i, input {| l := l; input := iom; destination := s; output := oom |})) → (let (i, li) := VLSM.l {| l := l; input := iom; destination := s; output := oom |} in let (si', om') := vtransition (equivocator_IM i) li (finite_trace_last is tr i, input {| l := l; input := iom; destination := s; output := oom |}) in (state_update equivocator_IM (finite_trace_last is tr) i si', om')) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination {| l := l; input := iom; destination := s; output := oom |} eqv)
Ht: input_valid_transition (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (finite_trace_last is tr, iom) (s, oom)previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors (finite_trace_last is tr) → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: state
iom, oom: option message
l: label
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproperx: (let (i, li) := VLSM.l {| l := l; input := iom; destination := s; output := oom |} in vvalid (equivocator_IM i) li (finite_trace_last is tr i, input {| l := l; input := iom; destination := s; output := oom |})) → (let (i, li) := VLSM.l {| l := l; input := iom; destination := s; output := oom |} in let (si', om') := vtransition (equivocator_IM i) li (finite_trace_last is tr i, input {| l := l; input := iom; destination := s; output := oom |}) in (state_update equivocator_IM (finite_trace_last is tr) i si', om')) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination {| l := l; input := iom; destination := s; output := oom |} eqv)
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors (finite_trace_last is tr) → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: state
iom, oom: option message
l: label
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproperx: proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination {| l := l; input := iom; destination := s; output := oom |} eqv)
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors (finite_trace_last is tr) → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: state
iom, oom: option message
l: label
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproperx: proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update descriptors (projT1 l) (final_descriptors' (projT1 l)) ∧ finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l)) ∧ previous_state_descriptor_prop (IM (projT1 l)) (descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l)) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination {| l := l; input := iom; destination := s; output := oom |} eqv)
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ descriptors : equivocator_descriptors, proper_equivocator_descriptors descriptors (finite_trace_last is tr) → ∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: state
iom, oom: option message
l: label
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination {| l := l; input := iom; destination := s; output := oom |} eqv)
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: state
iom, oom: option message
l: label
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination {| l := l; input := iom; destination := s; output := oom |} eqv)
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: state
iom, oom: option message
l: label
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination {| l := l; input := iom; destination := s; output := oom |} eqv)
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: state
iom, oom: option message
l: label
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination {| l := l; input := iom; destination := s; output := oom |} eqv)
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)
Hex_new': previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: state
iom, oom: option message
l: label
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination {| l := l; input := iom; destination := s; output := oom |} eqv)
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: state
iom, oom: option message
l: label
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
preX, sufX: list (composite_transition_item IM)
_final_descriptors': equivocator_descriptors
H_final_descriptors': match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, _final_descriptors')
Hproject_tr: equivocators_trace_project _final_descriptors' tr = Some (preX, idescriptors)
HtrX: trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination {| l := l; input := iom; destination := s; output := oom |} eqv)
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)destruct oitem; inversion H_final_descriptors'; subst; assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: state
iom, oom: option message
l: label
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
preX, sufX: list (composite_transition_item IM)
_final_descriptors': equivocator_descriptors
H_final_descriptors': match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, _final_descriptors')
Hproject_tr: equivocators_trace_project _final_descriptors' tr = Some (preX, idescriptors)
HtrX: trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination {| l := l; input := iom; destination := s; output := oom |} eqv)
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)equivocators_trace_project final_descriptors' tr = Some (preX, idescriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: state
iom, oom: option message
l: label
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination {| l := l; input := iom; destination := s; output := oom |} eqv)
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)
Hex_new': previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: state
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors (destination {| l := existT i li; input := iom; destination := s; output := oom |})
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors (projT1 (existT i li)) (final_descriptors' (projT1 (existT i li)))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s (projT1 (existT i li)) (finite_trace_last is tr (projT1 (existT i li)))
Hex_new: previous_state_descriptor_prop (IM (projT1 (existT i li))) (descriptors (projT1 (existT i li))) (finite_trace_last is tr (projT1 (existT i li))) (final_descriptors' (projT1 (existT i li)))
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l {| l := existT i li; input := iom; destination := s; output := oom |}))) (projT2 (l {| l := existT i li; input := iom; destination := s; output := oom |})), existT (projT1 (l {| l := existT i li; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (l {| l := existT i li; input := iom; destination := s; output := oom |}))) (projT2 (l {| l := existT i li; input := iom; destination := s; output := oom |})) Hex) = l itemx) ∧ input {| l := existT i li; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := existT i li; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project descriptors (destination {| l := existT i li; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (l {| l := existT i li; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (l {| l := existT i li; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT i li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (destination {| l := existT i li; input := iom; destination := s; output := oom |} eqv)
Hv: composite_valid equivocator_IM (existT i li) (finite_trace_last is tr, iom)
Ht: transition (existT i li) (finite_trace_last is tr, iom) = (s, oom)
Hex_new': previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors i (final_descriptors' i)
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s i (finite_trace_last is tr i)
Hex_new: previous_state_descriptor_prop (IM i) (descriptors i) (finite_trace_last is tr i) (final_descriptors' i)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM i) li, existT i (existing_equivocator_label_extract (IM i) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ final_descriptors' i = equivocator_label_descriptor li | None => True end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT i li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)
Hv: vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT i li) (finite_trace_last is tr, iom) = (s, oom)
Hex_new': previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors i (final_descriptors' i)
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s i (finite_trace_last is tr i)
Hex_new: previous_state_descriptor_prop (IM i) (descriptors i) (finite_trace_last is tr i) (final_descriptors' i)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM i) li, existT i (existing_equivocator_label_extract (IM i) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ final_descriptors' i = equivocator_label_descriptor li | None => True end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT i li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)
Hv: vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT i li) (finite_trace_last is tr, iom) = (s, oom)
Hex_new': previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
e: i = eqvprevious_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors i (final_descriptors' i)
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s i (finite_trace_last is tr i)
Hex_new: previous_state_descriptor_prop (IM i) (descriptors i) (finite_trace_last is tr i) (final_descriptors' i)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM i) li, existT i (existing_equivocator_label_extract (IM i) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ final_descriptors' i = equivocator_label_descriptor li | None => True end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT i li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)
Hv: vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT i li) (finite_trace_last is tr, iom) = (s, oom)
Hex_new': previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
n: i ≠ eqvprevious_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors i (final_descriptors' i)
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s i (finite_trace_last is tr i)
Hex_new: previous_state_descriptor_prop (IM i) (descriptors i) (finite_trace_last is tr i) (final_descriptors' i)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM i) li, existT i (existing_equivocator_label_extract (IM i) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ final_descriptors' i = equivocator_label_descriptor li | None => True end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT i li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)
Hv: vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT i li) (finite_trace_last is tr, iom) = (s, oom)
Hex_new': previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
e: i = eqvprevious_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
eqv: index
li: vlabel (equivocator_IM eqv)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Hex_new: previous_state_descriptor_prop (IM eqv) (descriptors eqv) (finite_trace_last is tr eqv) (final_descriptors' eqv)
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s eqv (finite_trace_last is tr eqv)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors eqv (final_descriptors' eqv)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT eqv li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM eqv) li, existT eqv (existing_equivocator_label_extract (IM eqv) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ final_descriptors' eqv = equivocator_label_descriptor li | None => True end
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT eqv li) (finite_trace_last is tr, iom) = (s, oom)
Hv: vvalid (equivocator_IM eqv) li (finite_trace_last is tr eqv, iom)
Hex_new': previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
eqv: index
li: vlabel (equivocator_IM eqv)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Hex_new: previous_state_descriptor_prop (IM eqv) (descriptors eqv) (finite_trace_last is tr eqv) (final_descriptors' eqv)
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s eqv (finite_trace_last is tr eqv)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors eqv (final_descriptors' eqv)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT eqv li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM eqv) li, existT eqv (existing_equivocator_label_extract (IM eqv) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ final_descriptors' eqv = equivocator_label_descriptor li | None => True end
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT eqv li) (finite_trace_last is tr, iom) = (s, oom)
Hv: vvalid (equivocator_IM eqv) li (finite_trace_last is tr eqv, iom)
Hex_new': previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
His_tr: equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
eqv: index
li: vlabel (equivocator_IM eqv)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Hex_new: previous_state_descriptor_prop (IM eqv) (descriptors eqv) (finite_trace_last is tr eqv) (final_descriptors' eqv)
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s eqv (finite_trace_last is tr eqv)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors eqv (final_descriptors' eqv)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT eqv li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM eqv) li, existT eqv (existing_equivocator_label_extract (IM eqv) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ final_descriptors' eqv = equivocator_label_descriptor li | None => True end
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT eqv li) (finite_trace_last is tr, iom) = (s, oom)
Hv: vvalid (equivocator_IM eqv) li (finite_trace_last is tr eqv, iom)
Hex_new': previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
His_tr: equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
eqv: index
li: vlabel (equivocator_IM eqv)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
v: vstate (IM eqv)
Hvin_desc_eqv: descriptors eqv = NewMachine v
Hex_new: previous_state_descriptor_prop (IM eqv) (NewMachine v) (finite_trace_last is tr eqv) (final_descriptors' eqv)
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s eqv (finite_trace_last is tr eqv)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors eqv (final_descriptors' eqv)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT eqv li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM eqv) li, existT eqv (existing_equivocator_label_extract (IM eqv) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ final_descriptors' eqv = equivocator_label_descriptor li | None => True end
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT eqv li) (finite_trace_last is tr, iom) = (s, oom)
Hv: vvalid (equivocator_IM eqv) li (finite_trace_last is tr eqv, iom)
Hex_new': previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
His_tr: equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)previous_state_descriptor_prop (IM eqv) (NewMachine v) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
eqv: index
li: vlabel (equivocator_IM eqv)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
n: nat
Hvin_desc_eqv: descriptors eqv = Existing n
Hex_new: previous_state_descriptor_prop (IM eqv) (Existing n) (finite_trace_last is tr eqv) (final_descriptors' eqv)
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s eqv (finite_trace_last is tr eqv)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors eqv (final_descriptors' eqv)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT eqv li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM eqv) li, existT eqv (existing_equivocator_label_extract (IM eqv) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ final_descriptors' eqv = equivocator_label_descriptor li | None => True end
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT eqv li) (finite_trace_last is tr, iom) = (s, oom)
Hv: vvalid (equivocator_IM eqv) li (finite_trace_last is tr eqv, iom)
Hex_new': previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
His_tr: equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)previous_state_descriptor_prop (IM eqv) (Existing n) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
eqv: index
li: vlabel (equivocator_IM eqv)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
v: vstate (IM eqv)
Hvin_desc_eqv: descriptors eqv = NewMachine v
Hex_new: previous_state_descriptor_prop (IM eqv) (NewMachine v) (finite_trace_last is tr eqv) (final_descriptors' eqv)
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s eqv (finite_trace_last is tr eqv)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors eqv (final_descriptors' eqv)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT eqv li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM eqv) li, existT eqv (existing_equivocator_label_extract (IM eqv) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ final_descriptors' eqv = equivocator_label_descriptor li | None => True end
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT eqv li) (finite_trace_last is tr, iom) = (s, oom)
Hv: vvalid (equivocator_IM eqv) li (finite_trace_last is tr eqv, iom)
Hex_new': previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
His_tr: equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)previous_state_descriptor_prop (IM eqv) (NewMachine v) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
eqv: index
li: vlabel (equivocator_IM eqv)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
v: vstate (IM eqv)
Hvin_desc_eqv: descriptors eqv = NewMachine v
Hex_new: final_descriptors' eqv = NewMachine v
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s eqv (finite_trace_last is tr eqv)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors eqv (final_descriptors' eqv)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT eqv li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM eqv) li, existT eqv (existing_equivocator_label_extract (IM eqv) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ final_descriptors' eqv = equivocator_label_descriptor li | None => True end
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT eqv li) (finite_trace_last is tr, iom) = (s, oom)
Hv: vvalid (equivocator_IM eqv) li (finite_trace_last is tr eqv, iom)
Hex_new': previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
His_tr: equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)previous_state_descriptor_prop (IM eqv) (NewMachine v) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
eqv: index
li: vlabel (equivocator_IM eqv)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
v: vstate (IM eqv)
Hvin_desc_eqv: descriptors eqv = NewMachine v
Hex_new: final_descriptors' eqv = NewMachine v
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s eqv (finite_trace_last is tr eqv)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors eqv (final_descriptors' eqv)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT eqv li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM eqv) li, existT eqv (existing_equivocator_label_extract (IM eqv) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ final_descriptors' eqv = equivocator_label_descriptor li | None => True end
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT eqv li) (finite_trace_last is tr, iom) = (s, oom)
Hv: vvalid (equivocator_IM eqv) li (finite_trace_last is tr eqv, iom)
Hex_new': previous_state_descriptor_prop (IM eqv) (NewMachine v) (is eqv) (idescriptors eqv)
His_tr: equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)previous_state_descriptor_prop (IM eqv) (NewMachine v) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
eqv: index
li: vlabel (equivocator_IM eqv)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
v: vstate (IM eqv)
Hvin_desc_eqv: descriptors eqv = NewMachine v
Hex_new: final_descriptors' eqv = NewMachine v
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s eqv (finite_trace_last is tr eqv)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors eqv (final_descriptors' eqv)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT eqv li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM eqv) li, existT eqv (existing_equivocator_label_extract (IM eqv) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ final_descriptors' eqv = equivocator_label_descriptor li | None => True end
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT eqv li) (finite_trace_last is tr, iom) = (s, oom)
Hv: vvalid (equivocator_IM eqv) li (finite_trace_last is tr eqv, iom)
Hex_new': idescriptors eqv = NewMachine v
His_tr: equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)previous_state_descriptor_prop (IM eqv) (NewMachine v) (is eqv) (idescriptors eqv)assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
eqv: index
li: vlabel (equivocator_IM eqv)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
v: vstate (IM eqv)
Hvin_desc_eqv: descriptors eqv = NewMachine v
Hex_new: final_descriptors' eqv = NewMachine v
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s eqv (finite_trace_last is tr eqv)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors eqv (final_descriptors' eqv)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT eqv li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM eqv) li, existT eqv (existing_equivocator_label_extract (IM eqv) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ final_descriptors' eqv = equivocator_label_descriptor li | None => True end
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT eqv li) (finite_trace_last is tr, iom) = (s, oom)
Hv: vvalid (equivocator_IM eqv) li (finite_trace_last is tr eqv, iom)
Hex_new': idescriptors eqv = NewMachine v
His_tr: equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)idescriptors eqv = NewMachine vmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
eqv: index
li: vlabel (equivocator_IM eqv)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
n: nat
Hvin_desc_eqv: descriptors eqv = Existing n
Hex_new: previous_state_descriptor_prop (IM eqv) (Existing n) (finite_trace_last is tr eqv) (final_descriptors' eqv)
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s eqv (finite_trace_last is tr eqv)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors eqv (final_descriptors' eqv)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT eqv li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM eqv) li, existT eqv (existing_equivocator_label_extract (IM eqv) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ final_descriptors' eqv = equivocator_label_descriptor li | None => True end
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT eqv li) (finite_trace_last is tr, iom) = (s, oom)
Hv: vvalid (equivocator_IM eqv) li (finite_trace_last is tr eqv, iom)
Hex_new': previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
His_tr: equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)previous_state_descriptor_prop (IM eqv) (Existing n) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
eqv: index
li: vlabel (equivocator_IM eqv)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
n: nat
Hvin_desc_eqv: descriptors eqv = Existing n
v: vstate (IM eqv)
Hfin_desc_eqv': final_descriptors' eqv = NewMachine v
Hex_new: previous_state_descriptor_prop (IM eqv) (Existing n) (finite_trace_last is tr eqv) (NewMachine v)
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s eqv (finite_trace_last is tr eqv)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors eqv (NewMachine v)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT eqv li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM eqv) li, existT eqv (existing_equivocator_label_extract (IM eqv) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ NewMachine v = equivocator_label_descriptor li | None => True end
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT eqv li) (finite_trace_last is tr, iom) = (s, oom)
Hv: vvalid (equivocator_IM eqv) li (finite_trace_last is tr eqv, iom)
Hex_new': previous_state_descriptor_prop (IM eqv) (NewMachine v) (is eqv) (idescriptors eqv)
His_tr: equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)previous_state_descriptor_prop (IM eqv) (Existing n) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
eqv: index
li: vlabel (equivocator_IM eqv)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
n: nat
Hvin_desc_eqv: descriptors eqv = Existing n
n0: nat
Hfin_desc_eqv': final_descriptors' eqv = Existing n0
Hex_new: previous_state_descriptor_prop (IM eqv) (Existing n) (finite_trace_last is tr eqv) (Existing n0)
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s eqv (finite_trace_last is tr eqv)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors eqv (Existing n0)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT eqv li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM eqv) li, existT eqv (existing_equivocator_label_extract (IM eqv) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ Existing n0 = equivocator_label_descriptor li | None => True end
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT eqv li) (finite_trace_last is tr, iom) = (s, oom)
Hv: vvalid (equivocator_IM eqv) li (finite_trace_last is tr eqv, iom)
Hex_new': previous_state_descriptor_prop (IM eqv) (Existing n0) (is eqv) (idescriptors eqv)
His_tr: equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)previous_state_descriptor_prop (IM eqv) (Existing n) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
eqv: index
li: vlabel (equivocator_IM eqv)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
n: nat
Hvin_desc_eqv: descriptors eqv = Existing n
v: vstate (IM eqv)
Hfin_desc_eqv': final_descriptors' eqv = NewMachine v
Hex_new: previous_state_descriptor_prop (IM eqv) (Existing n) (finite_trace_last is tr eqv) (NewMachine v)
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s eqv (finite_trace_last is tr eqv)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors eqv (NewMachine v)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT eqv li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM eqv) li, existT eqv (existing_equivocator_label_extract (IM eqv) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ NewMachine v = equivocator_label_descriptor li | None => True end
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT eqv li) (finite_trace_last is tr, iom) = (s, oom)
Hv: vvalid (equivocator_IM eqv) li (finite_trace_last is tr eqv, iom)
Hex_new': previous_state_descriptor_prop (IM eqv) (NewMachine v) (is eqv) (idescriptors eqv)
His_tr: equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)previous_state_descriptor_prop (IM eqv) (Existing n) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
eqv: index
li: vlabel (equivocator_IM eqv)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
n: nat
Hvin_desc_eqv: descriptors eqv = Existing n
v: vstate (IM eqv)
Hfin_desc_eqv': final_descriptors' eqv = NewMachine v
Hex_new: equivocator_state_n (finite_trace_last is tr eqv) ≤ n
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s eqv (finite_trace_last is tr eqv)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors eqv (NewMachine v)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT eqv li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM eqv) li, existT eqv (existing_equivocator_label_extract (IM eqv) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ NewMachine v = equivocator_label_descriptor li | None => True end
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT eqv li) (finite_trace_last is tr, iom) = (s, oom)
Hv: vvalid (equivocator_IM eqv) li (finite_trace_last is tr eqv, iom)
Hex_new': idescriptors eqv = NewMachine v
His_tr: equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)previous_state_descriptor_prop (IM eqv) (Existing n) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
eqv: index
li: vlabel (equivocator_IM eqv)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
n: nat
Hvin_desc_eqv: descriptors eqv = Existing n
v: vstate (IM eqv)
Hfin_desc_eqv': final_descriptors' eqv = NewMachine v
Hex_new: equivocator_state_n (finite_trace_last is tr eqv) ≤ n
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s eqv (finite_trace_last is tr eqv)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors eqv (NewMachine v)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT eqv li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM eqv) li, existT eqv (existing_equivocator_label_extract (IM eqv) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ NewMachine v = equivocator_label_descriptor li | None => True end
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT eqv li) (finite_trace_last is tr, iom) = (s, oom)
Hv: vvalid (equivocator_IM eqv) li (finite_trace_last is tr eqv, iom)
Hex_new': idescriptors eqv = NewMachine v
His_tr: equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)previous_state_descriptor_prop (IM eqv) (Existing n) (is eqv) (NewMachine v)lia.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
eqv: index
li: vlabel (equivocator_IM eqv)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
n: nat
Hvin_desc_eqv: descriptors eqv = Existing n
v: vstate (IM eqv)
Hfin_desc_eqv': final_descriptors' eqv = NewMachine v
Hex_new: equivocator_state_n (finite_trace_last is tr eqv) ≤ n
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s eqv (finite_trace_last is tr eqv)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors eqv (NewMachine v)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT eqv li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM eqv) li, existT eqv (existing_equivocator_label_extract (IM eqv) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ NewMachine v = equivocator_label_descriptor li | None => True end
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT eqv li) (finite_trace_last is tr, iom) = (s, oom)
Hv: vvalid (equivocator_IM eqv) li (finite_trace_last is tr eqv, iom)
Hex_new': idescriptors eqv = NewMachine v
His_tr: equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)equivocator_state_n (is eqv) ≤ ndestruct (idescriptors eqv); simpl in *; lia.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
eqv: index
li: vlabel (equivocator_IM eqv)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
n: nat
Hvin_desc_eqv: descriptors eqv = Existing n
n0: nat
Hfin_desc_eqv': final_descriptors' eqv = Existing n0
Hex_new: previous_state_descriptor_prop (IM eqv) (Existing n) (finite_trace_last is tr eqv) (Existing n0)
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s eqv (finite_trace_last is tr eqv)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors eqv (Existing n0)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT eqv li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM eqv) li, existT eqv (existing_equivocator_label_extract (IM eqv) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ Existing n0 = equivocator_label_descriptor li | None => True end
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT eqv li) (finite_trace_last is tr, iom) = (s, oom)
Hv: vvalid (equivocator_IM eqv) li (finite_trace_last is tr eqv, iom)
Hex_new': previous_state_descriptor_prop (IM eqv) (Existing n0) (is eqv) (idescriptors eqv)
His_tr: equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Htr_x: equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)previous_state_descriptor_prop (IM eqv) (Existing n) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors i (final_descriptors' i)
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s i (finite_trace_last is tr i)
Hex_new: previous_state_descriptor_prop (IM i) (descriptors i) (finite_trace_last is tr i) (final_descriptors' i)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM i) li, existT i (existing_equivocator_label_extract (IM i) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ final_descriptors' i = equivocator_label_descriptor li | None => True end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT i li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)
Hv: vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT i li) (finite_trace_last is tr, iom) = (s, oom)
Hex_new': previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
n: i ≠ eqvprevious_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors i (final_descriptors' i)
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s i (finite_trace_last is tr i)
Hex_new: previous_state_descriptor_prop (IM i) (descriptors i) (finite_trace_last is tr i) (final_descriptors' i)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM i) li, existT i (existing_equivocator_label_extract (IM i) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ final_descriptors' i = equivocator_label_descriptor li | None => True end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT i li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)
Hv: vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT i li) (finite_trace_last is tr, iom) = (s, oom)
Hex_new': previous_state_descriptor_prop (IM eqv) (equivocator_descriptors_update descriptors i (final_descriptors' i) eqv) (is eqv) (idescriptors eqv)
n: i ≠ eqvprevious_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors i (final_descriptors' i)
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s i (finite_trace_last is tr i)
Hex_new: previous_state_descriptor_prop (IM i) (descriptors i) (finite_trace_last is tr i) (final_descriptors' i)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM i) li, existT i (existing_equivocator_label_extract (IM i) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ final_descriptors' i = equivocator_label_descriptor li | None => True end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT i li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)
Hv: vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT i li) (finite_trace_last is tr, iom) = (s, oom)
Hex_new': previous_state_descriptor_prop (IM eqv) (Common.equivocator_descriptors_update IM descriptors i (final_descriptors' i) eqv) (is eqv) (idescriptors eqv)
n: i ≠ eqvprevious_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)assumption. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, idescriptors) → ∀ eqv : index, previous_state_descriptor_prop (IM eqv) (final_descriptors' eqv) (is eqv) (idescriptors eqv)
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
descriptors: equivocator_descriptors
Hdescriptors: proper_equivocator_descriptors descriptors s
trX: list (composite_transition_item IM)
oitem: option (composite_transition_item IM)
Hproject_tr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, idescriptors) ∧ trX = preX ++ sufX
eqv: index
His_tr: ∀ eqv : index, equivocator_state_n (is eqv) ≤ equivocator_state_n (finite_trace_last is tr eqv)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update descriptors i (final_descriptors' i)
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM s i (finite_trace_last is tr i)
Hex_new: previous_state_descriptor_prop (IM i) (descriptors i) (finite_trace_last is tr i) (final_descriptors' i)
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM i) li, existT i (existing_equivocator_label_extract (IM i) li Hex) = l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project descriptors s = destination itemx ∧ final_descriptors' i = equivocator_label_descriptor li | None => True end
Hprojectx: equivocators_transition_item_project descriptors {| l := existT i li; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htr_x: ∀ eqv : index, equivocator_state_n (finite_trace_last is tr eqv) ≤ equivocator_state_n (s eqv)
Hv: vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Ht: vtransition (free_composite_vlsm equivocator_IM) (existT i li) (finite_trace_last is tr, iom) = (s, oom)
Hex_new': previous_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)
n: i ≠ eqvprevious_state_descriptor_prop (IM eqv) (descriptors eqv) (is eqv) (idescriptors eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors, idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr
Hdescriptors: not_equivocating_equivocator_descriptors IM descriptors s
Hproject_tr: equivocators_trace_project descriptors tr = Some (trX, idescriptors)set_union (equivocating_indices IM (enum index) is) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ equivocating_indices IM (enum index) smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors, idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr
Hdescriptors: not_equivocating_equivocator_descriptors IM descriptors s
Hproject_tr: equivocators_trace_project descriptors tr = Some (trX, idescriptors)set_union (equivocating_indices IM (enum index) is) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ equivocating_indices IM (enum index) smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors, idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr
Hdescriptors: not_equivocating_equivocator_descriptors IM descriptors s
Hproper: Common.proper_equivocator_descriptors IM descriptors s
Hproject_tr: equivocators_trace_project descriptors tr = Some (trX, idescriptors)set_union (equivocating_indices IM (enum index) is) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ equivocating_indices IM (enum index) smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors, idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr
Hdescriptors: not_equivocating_equivocator_descriptors IM descriptors s
Hproper: Common.proper_equivocator_descriptors IM descriptors s
Hproject_tr: equivocators_trace_project descriptors tr = Some (trX, idescriptors)
Hincl: set_union (equivocating_indices IM (enum index) is) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)set_union (equivocating_indices IM (enum index) is) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ equivocating_indices IM (enum index) smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors, idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr
Hdescriptors: not_equivocating_equivocator_descriptors IM descriptors s
Hproper: Common.proper_equivocator_descriptors IM descriptors s
Hproject_tr: equivocators_trace_project descriptors tr = Some (trX, idescriptors)
Hincl: set_union (equivocating_indices IM (enum index) is) (newmachine_descriptors_list IM (enum index) idescriptors) ⊆ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)
eqv: index
Heqv: eqv ∈ set_union (equivocating_indices IM (enum index) is) (newmachine_descriptors_list IM (enum index) idescriptors)eqv ∈ equivocating_indices IM (enum index) smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors, idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr
Hdescriptors: not_equivocating_equivocator_descriptors IM descriptors s
Hproper: Common.proper_equivocator_descriptors IM descriptors s
Hproject_tr: equivocators_trace_project descriptors tr = Some (trX, idescriptors)
eqv: index
Heqv: eqv ∈ set_union (equivocating_indices IM (enum index) is) (newmachine_descriptors_list IM (enum index) idescriptors)
Hincl: eqv ∈ set_union (equivocating_indices IM (enum index) s) (newmachine_descriptors_list IM (enum index) descriptors)eqv ∈ equivocating_indices IM (enum index) smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors, idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr
Hdescriptors: not_equivocating_equivocator_descriptors IM descriptors s
Hproper: Common.proper_equivocator_descriptors IM descriptors s
Hproject_tr: equivocators_trace_project descriptors tr = Some (trX, idescriptors)
eqv: index
Heqv: eqv ∈ set_union (equivocating_indices IM (enum index) is) (newmachine_descriptors_list IM (enum index) idescriptors)
Hincl: eqv ∈ equivocating_indices IM (enum index) s ∨ eqv ∈ newmachine_descriptors_list IM (enum index) descriptorseqv ∈ equivocating_indices IM (enum index) smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors, idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr
Hdescriptors: not_equivocating_equivocator_descriptors IM descriptors s
Hproper: Common.proper_equivocator_descriptors IM descriptors s
Hproject_tr: equivocators_trace_project descriptors tr = Some (trX, idescriptors)
eqv: index
Hincl: eqv ∈ equivocating_indices IM (enum index) s ∨ eqv ∈ newmachine_descriptors_list IM (enum index) descriptorseqv ∈ equivocating_indices IM (enum index) smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors, idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr
Hdescriptors: not_equivocating_equivocator_descriptors IM descriptors s
Hproper: Common.proper_equivocator_descriptors IM descriptors s
Hproject_tr: equivocators_trace_project descriptors tr = Some (trX, idescriptors)
eqv: index
Heqv: eqv ∈ newmachine_descriptors_list IM (enum index) descriptorseqv ∈ equivocating_indices IM (enum index) smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors, idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr
eqv: index
Hdescriptors: existing_descriptor (IM eqv) (descriptors eqv) (s eqv)
Hproper: Common.proper_equivocator_descriptors IM descriptors s
Hproject_tr: equivocators_trace_project descriptors tr = Some (trX, idescriptors)
Heqv: eqv ∈ newmachine_descriptors_list IM (enum index) descriptorseqv ∈ equivocating_indices IM (enum index) smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors, idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr
eqv: index
Hdescriptors: existing_descriptor (IM eqv) (descriptors eqv) (s eqv)
Hproper: Common.proper_equivocator_descriptors IM descriptors s
Hproject_tr: equivocators_trace_project descriptors tr = Some (trX, idescriptors)
Heqv: is_newmachine_descriptor (IM eqv) (descriptors eqv) ∧ eqv ∈ enum indexeqv ∈ equivocating_indices IM (enum index) smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors, idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr
eqv: index
Hdescriptors: existing_descriptor (IM eqv) (descriptors eqv) (s eqv)
Hproper: Common.proper_equivocator_descriptors IM descriptors s
Hproject_tr: equivocators_trace_project descriptors tr = Some (trX, idescriptors)
Heqv: is_newmachine_descriptor (IM eqv) (descriptors eqv)
Hin: eqv ∈ enum indexeqv ∈ equivocating_indices IM (enum index) scontradiction. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
descriptors, idescriptors: equivocator_descriptors
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
is, s: composite_state equivocator_IM
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is s tr
eqv: index
v: vstate (IM eqv)
Hdescriptors: existing_descriptor (IM eqv) (NewMachine v) (s eqv)
Hproper: Common.proper_equivocator_descriptors IM descriptors s
Hproject_tr: equivocators_trace_project descriptors tr = Some (trX, idescriptors)
Heqv: is_newmachine_descriptor (IM eqv) (NewMachine v)
Hin: eqv ∈ enum indexeqv ∈ equivocating_indices IM (enum index) s
We can project a trace over the composition of equivocators in two ways:
(1) first project on a equivocator component, then project the equivocator to the original component
(2) first projects to the composition of original components, then project to one of them
The result below says that the two ways lead to the same result.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
final_descriptors, initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
trXi: list (vtransition_item (IM i))
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
Hproject_tr: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hproject_tri: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) eqv_final = Some (trXi, eqv_initial)initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
final_descriptors, initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
trXi: list (vtransition_item (IM i))
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
Hproject_tr: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hproject_tri: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) eqv_final = Some (trXi, eqv_initial)initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
final_descriptors, initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
Hproject_tr: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)∀ trXi : list (vtransition_item (IM i)), equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) eqv_final = Some (trXi, eqv_initial) → initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
final_descriptors, initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
tr: list (composite_transition_item equivocator_IM)
eqv_final:= final_descriptors i: MachineDescriptor (IM i)∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → ∀ trXi : list (vtransition_item (IM i)), equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) eqv_final = Some (trXi, eqv_initial) → initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
tr: list (composite_transition_item equivocator_IM)∀ (final_descriptors : equivocator_descriptors) (eqv_final := final_descriptors i) (trX : list (composite_transition_item IM)), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → ∀ trXi : list (vtransition_item (IM i)), equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) eqv_final = Some (trXi, eqv_initial) → initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project final_descriptors [] = Some (trX, initial_descriptors)
trXi: list (vtransition_item (IM i))
Hproject_tri: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i []) eqv_final = Some (trXi, eqv_initial)initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ (final_descriptors : equivocator_descriptors) (eqv_final := final_descriptors i) (trX : list (composite_transition_item IM)), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → ∀ trXi : list (vtransition_item (IM i)), equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) eqv_final = Some (trXi, eqv_initial) → initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXi
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors)
trXi: list (vtransition_item (IM i))
Hproject_tri: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i (tr ++ [x])) eqv_final = Some (trXi, eqv_initial)initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project final_descriptors [] = Some (trX, initial_descriptors)
trXi: list (vtransition_item (IM i))
Hproject_tri: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i []) eqv_final = Some (trXi, eqv_initial)initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX: list (composite_transition_item IM)
Hproject_tr: Some ([], final_descriptors) = Some (trX, initial_descriptors)
trXi: list (vtransition_item (IM i))
Hproject_tri: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i []) eqv_final = Some (trXi, eqv_initial)initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX: list (composite_transition_item IM)
Hproject_tr: Some ([], final_descriptors) = Some (trX, initial_descriptors)
trXi: list (vtransition_item (IM i))
Hproject_tri: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i []) eqv_final = Some (trXi, eqv_initial)
H2: [] = trX
H3: final_descriptors = initial_descriptorsinitial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i [] = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
Hproject_tr: Some ([], initial_descriptors) = Some ([], initial_descriptors)
eqv_final:= initial_descriptors i: MachineDescriptor (IM i)
trXi: list (vtransition_item (IM i))
Hproject_tri: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i []) eqv_final = Some (trXi, eqv_initial)initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i [] = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
eqv_final:= initial_descriptors i: MachineDescriptor (IM i)
trXi: list (vtransition_item (IM i))
Hproject_tri: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i []) eqv_final = Some (trXi, eqv_initial)initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i [] = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
eqv_final:= initial_descriptors i: MachineDescriptor (IM i)
trXi: list (vtransition_item (IM i))
Hproject_tri: Some ([], eqv_final) = Some (trXi, eqv_initial)initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i [] = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
eqv_final:= initial_descriptors i: MachineDescriptor (IM i)
trXi: list (vtransition_item (IM i))
Hproject_tri: Some ([], eqv_final) = Some (trXi, eqv_initial)
H2: [] = trXi
H3: eqv_final = eqv_initialinitial_descriptors i = eqv_final ∧ finite_trace_projection_list IM i [] = []split; reflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_final:= initial_descriptors i: MachineDescriptor (IM i)
Hproject_tri: Some ([], eqv_final) = Some ([], eqv_final)initial_descriptors i = eqv_final ∧ finite_trace_projection_list IM i [] = []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ (final_descriptors : equivocator_descriptors) (eqv_final := final_descriptors i) (trX : list (composite_transition_item IM)), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → ∀ trXi : list (vtransition_item (IM i)), equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) eqv_final = Some (trXi, eqv_initial) → initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXi
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors)
trXi: list (vtransition_item (IM i))
Hproject_tri: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i (tr ++ [x])) eqv_final = Some (trXi, eqv_initial)initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ (final_descriptors : equivocator_descriptors) (eqv_final := final_descriptors i) (trX : list (composite_transition_item IM)), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → ∀ trXi : list (vtransition_item (IM i)), equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) eqv_final = Some (trXi, eqv_initial) → initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXi
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX: list (composite_transition_item IM)
Hproject_tr: foldr equivocators_trace_project_folder (Some ([], final_descriptors)) (tr ++ [x]) = Some (trX, initial_descriptors)
trXi: list (vtransition_item (IM i))
Hproject_tri: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i (tr ++ [x])) eqv_final = Some (trXi, eqv_initial)initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ (final_descriptors : equivocator_descriptors) (eqv_final := final_descriptors i) (trX : list (composite_transition_item IM)), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → ∀ trXi : list (vtransition_item (IM i)), equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) eqv_final = Some (trXi, eqv_initial) → initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXi
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX: list (composite_transition_item IM)
Hproject_tr: foldr equivocators_trace_project_folder (foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x]) tr = Some (trX, initial_descriptors)
trXi: list (vtransition_item (IM i))
Hproject_tri: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i (tr ++ [x])) eqv_final = Some (trXi, eqv_initial)initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ (final_descriptors : equivocator_descriptors) (eqv_final := final_descriptors i) (trX : list (composite_transition_item IM)), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → ∀ trXi : list (vtransition_item (IM i)), equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) eqv_final = Some (trXi, eqv_initial) → initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXi
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX, projectx: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hproject_x: foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
Hproject_tr: foldr equivocators_trace_project_folder (Some (projectx, final_descriptors')) tr = Some (trX, initial_descriptors)
trXi: list (vtransition_item (IM i))
Hproject_tri: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i (tr ++ [x])) eqv_final = Some (trXi, eqv_initial)initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ (final_descriptors : equivocator_descriptors) (eqv_final := final_descriptors i) (trX : list (composite_transition_item IM)), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → ∀ trXi : list (vtransition_item (IM i)), equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) eqv_final = Some (trXi, eqv_initial) → initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXi
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX, projectx: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hproject_x: foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
Hproject_tr: ∃ trX0 : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors) ∧ trX = trX0 ++ projectx
trXi: list (vtransition_item (IM i))
Hproject_tri: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i (tr ++ [x])) eqv_final = Some (trXi, eqv_initial)initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ (final_descriptors : equivocator_descriptors) (eqv_final := final_descriptors i) (trX : list (composite_transition_item IM)), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → ∀ trXi : list (vtransition_item (IM i)), equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) eqv_final = Some (trXi, eqv_initial) → initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXi
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX, projectx: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hproject_x: foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
trX0: list (composite_transition_item IM)
HtrX0: foldr equivocators_trace_project_folder (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
trXi: list (vtransition_item (IM i))
Hproject_tri: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i (tr ++ [x])) eqv_final = Some (trXi, eqv_initial)initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_descriptors': equivocator_descriptors
trX0: list (composite_transition_item IM)
IHtr: ∀ trXi : list (vtransition_item (IM i)), equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) (final_descriptors' i) = Some (trXi, eqv_initial) → initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX0 = trXi
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr equivocators_trace_project_folder (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
trXi: list (vtransition_item (IM i))
Hproject_tri: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i (tr ++ [x])) eqv_final = Some (trXi, eqv_initial)initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_descriptors': equivocator_descriptors
trX0: list (composite_transition_item IM)
IHtr: ∀ trXi : list (vtransition_item (IM i)), equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) (final_descriptors' i) = Some (trXi, eqv_initial) → initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX0 = trXi
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr equivocators_trace_project_folder (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
trXi: list (vtransition_item (IM i))
Hproject_tri: equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) (tr ++ [x])) eqv_final = Some (trXi, eqv_initial)initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_descriptors': equivocator_descriptors
trX0: list (composite_transition_item IM)
IHtr: ∀ trXi : list (vtransition_item (IM i)), equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) (final_descriptors' i) = Some (trXi, eqv_initial) → initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX0 = trXi
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr equivocators_trace_project_folder (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
trXi: list (vtransition_item (IM i))
Hproject_tri: equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) tr ++ pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) [x]) eqv_final = Some (trXi, eqv_initial)initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_descriptors': equivocator_descriptors
trX0: list (composite_transition_item IM)
IHtr: ∀ trXi : list (vtransition_item (IM i)), equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) (final_descriptors' i) = Some (trXi, eqv_initial) → initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX0 = trXi
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr equivocators_trace_project_folder (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
trXi: list (vtransition_item (IM i))
Hproject_tri: ∃ (dmiddle : MachineDescriptor (IM i)) (prefix suffix : list (vtransition_item (IM i))) (_ : equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) tr) dmiddle = Some (prefix, eqv_initial)) (_ : equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) [x]) eqv_final = Some (suffix, dmiddle)), trXi = prefix ++ suffixinitial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_descriptors': equivocator_descriptors
trX0: list (composite_transition_item IM)
IHtr: ∀ trXi : list (vtransition_item (IM i)), equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) (final_descriptors' i) = Some (trXi, eqv_initial) → initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX0 = trXi
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr equivocators_trace_project_folder (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
trXi: list (vtransition_item (IM i))
eqv_final': MachineDescriptor (IM i)
trXi', project_xi: list (vtransition_item (IM i))
HtrXi': equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) tr) eqv_final' = Some (trXi', eqv_initial)
Hproject_xi: equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) [x]) eqv_final = Some (project_xi, eqv_final')
HeqtrXi: trXi = trXi' ++ project_xiinitial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_descriptors': equivocator_descriptors
trX0: list (composite_transition_item IM)
IHtr: ∀ trXi : list (vtransition_item (IM i)), equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) (final_descriptors' i) = Some (trXi, eqv_initial) → initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX0 = trXi
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr equivocators_trace_project_folder (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
trXi: list (vtransition_item (IM i))
eqv_final': MachineDescriptor (IM i)
trXi', project_xi: list (vtransition_item (IM i))
HtrXi': equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) tr) eqv_final' = Some (trXi', eqv_initial)
Hproject_xi: equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) [x]) eqv_final = Some (project_xi, eqv_final')
HeqtrXi: trXi = trXi' ++ project_xifinal_descriptors' i = eqv_final' ∧ finite_trace_projection_list IM i projectx = project_ximessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_descriptors': equivocator_descriptors
trX0: list (composite_transition_item IM)
IHtr: ∀ trXi : list (vtransition_item (IM i)), equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) (final_descriptors' i) = Some (trXi, eqv_initial) → initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX0 = trXi
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr equivocators_trace_project_folder (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
trXi: list (vtransition_item (IM i))
eqv_final': MachineDescriptor (IM i)
trXi', project_xi: list (vtransition_item (IM i))
HtrXi': equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) tr) eqv_final' = Some (trXi', eqv_initial)
Hproject_xi: equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) [x]) eqv_final = Some (project_xi, eqv_final')
HeqtrXi: trXi = trXi' ++ project_xi
Hfinal'i: final_descriptors' i = eqv_final' ∧ finite_trace_projection_list IM i projectx = project_xiinitial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_descriptors': equivocator_descriptors
trX0: list (composite_transition_item IM)
IHtr: ∀ trXi : list (vtransition_item (IM i)), equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) (final_descriptors' i) = Some (trXi, eqv_initial) → initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX0 = trXi
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr equivocators_trace_project_folder (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
trXi: list (vtransition_item (IM i))
eqv_final': MachineDescriptor (IM i)
trXi', project_xi: list (vtransition_item (IM i))
HtrXi': equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) tr) eqv_final' = Some (trXi', eqv_initial)
Hproject_xi: equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) [x]) eqv_final = Some (project_xi, eqv_final')
HeqtrXi: trXi = trXi' ++ project_xifinal_descriptors' i = eqv_final' ∧ finite_trace_projection_list IM i projectx = project_ximessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
x: composite_transition_item equivocator_IM
final_descriptors', final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
projectx: list (composite_transition_item IM)
Hproject_x: foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
eqv_final': MachineDescriptor (IM i)
project_xi: list (vtransition_item (IM i))
Hproject_xi: equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) [x]) eqv_final = Some (project_xi, eqv_final')final_descriptors' i = eqv_final' ∧ finite_trace_projection_list IM i projectx = project_ximessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
x: composite_transition_item equivocator_IM
final_descriptors', final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
projectx: list (composite_transition_item IM)
Hproject_x: match equivocators_transition_item_project final_descriptors x with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (projectx, final_descriptors')
eqv_final': MachineDescriptor (IM i)
project_xi: list (vtransition_item (IM i))
Hproject_xi: equivocator_vlsm_trace_project (IM i) match pre_VLSM_projection_transition_item_project (composite_type equivocator_IM) (equivocator_type (IM i)) (composite_project_label equivocator_IM i) (λ s : _composite_state equivocator_IM, s i) x with | Some b => [b] | None => [] end eqv_final = Some (project_xi, eqv_final')final_descriptors' i = eqv_final' ∧ finite_trace_projection_list IM i projectx = project_ximessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
x: composite_transition_item equivocator_IM
final_descriptors', final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
projectx: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors
Hpr_item_x: equivocators_transition_item_project final_descriptors x = Some (ox, final')
Hproject_x: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (projectx, final_descriptors')
eqv_final': MachineDescriptor (IM i)
project_xi: list (vtransition_item (IM i))
Hproject_xi: equivocator_vlsm_trace_project (IM i) match pre_VLSM_projection_transition_item_project (composite_type equivocator_IM) (equivocator_type (IM i)) (composite_project_label equivocator_IM i) (λ s : _composite_state equivocator_IM, s i) x with | Some b => [b] | None => [] end eqv_final = Some (project_xi, eqv_final')final_descriptors' i = eqv_final' ∧ finite_trace_projection_list IM i projectx = project_ximessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
x: composite_transition_item equivocator_IM
final_descriptors', final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
projectx: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors
Hpr_item_x: match equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |}, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | None => None end = Some (ox, final')
Hproject_x: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (projectx, final_descriptors')
eqv_final': MachineDescriptor (IM i)
project_xi: list (vtransition_item (IM i))
Hproject_xi: equivocator_vlsm_trace_project (IM i) match pre_VLSM_projection_transition_item_project (composite_type equivocator_IM) (equivocator_type (IM i)) (composite_project_label equivocator_IM i) (λ s : _composite_state equivocator_IM, s i) x with | Some b => [b] | None => [] end eqv_final = Some (project_xi, eqv_final')final_descriptors' i = eqv_final' ∧ finite_trace_projection_list IM i projectx = project_ximessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
x: composite_transition_item equivocator_IM
final_descriptors', final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
projectx: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors
Hpr_item_x: match equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |}, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | None => None end = Some (ox, final')
Hproject_x: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (projectx, final_descriptors')
eqv_final': MachineDescriptor (IM i)
project_xi: list (vtransition_item (IM i))
Hproject_xi: equivocator_vlsm_trace_project (IM i) match pre_VLSM_projection_transition_item_project (composite_type equivocator_IM) (equivocator_type (IM i)) (composite_project_label equivocator_IM i) (λ s : _composite_state equivocator_IM, s i) x with | Some b => [b] | None => [] end eqv_final = Some (project_xi, eqv_final')
e: i = projT1 (l x)final_descriptors' i = eqv_final' ∧ finite_trace_projection_list IM i projectx = project_ximessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
x: composite_transition_item equivocator_IM
final_descriptors', final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
projectx: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors
Hpr_item_x: match equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |}, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | None => None end = Some (ox, final')
Hproject_x: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (projectx, final_descriptors')
eqv_final': MachineDescriptor (IM i)
project_xi: list (vtransition_item (IM i))
Hproject_xi: equivocator_vlsm_trace_project (IM i) match pre_VLSM_projection_transition_item_project (composite_type equivocator_IM) (equivocator_type (IM i)) (composite_project_label equivocator_IM i) (λ s : _composite_state equivocator_IM, s i) x with | Some b => [b] | None => [] end eqv_final = Some (project_xi, eqv_final')
n: i ≠ projT1 (l x)final_descriptors' i = eqv_final' ∧ finite_trace_projection_list IM i projectx = project_ximessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
x: composite_transition_item equivocator_IM
final_descriptors', final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
projectx: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors
Hpr_item_x: match equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |}, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | None => None end = Some (ox, final')
Hproject_x: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (projectx, final_descriptors')
eqv_final': MachineDescriptor (IM i)
project_xi: list (vtransition_item (IM i))
Hproject_xi: equivocator_vlsm_trace_project (IM i) match pre_VLSM_projection_transition_item_project (composite_type equivocator_IM) (equivocator_type (IM i)) (composite_project_label equivocator_IM i) (λ s : _composite_state equivocator_IM, s i) x with | Some b => [b] | None => [] end eqv_final = Some (project_xi, eqv_final')
e: i = projT1 (l x)final_descriptors' i = eqv_final' ∧ finite_trace_projection_list IM i projectx = project_ximessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
x: composite_transition_item equivocator_IM
final_descriptors', final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors (projT1 (l x)): MachineDescriptor (IM (projT1 (l x)))
projectx: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors
Hpr_item_x: match equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |}, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | None => None end = Some (ox, final')
Hproject_x: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (projectx, final_descriptors')
project_xi: list (vtransition_item (IM (projT1 (l x))))
eqv_final': MachineDescriptor (IM (projT1 (l x)))
Hproject_xi: equivocator_vlsm_trace_project (IM (projT1 (l x))) match pre_VLSM_projection_transition_item_project (composite_type equivocator_IM) (equivocator_type (IM (projT1 (l x)))) (composite_project_label equivocator_IM (projT1 (l x))) (λ s : _composite_state equivocator_IM, s (projT1 (l x))) x with | Some b => [b] | None => [] end eqv_final = Some (project_xi, eqv_final')final_descriptors' (projT1 (l x)) = eqv_final' ∧ finite_trace_projection_list IM (projT1 (l x)) projectx = project_ximessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
x: composite_transition_item equivocator_IM
final_descriptors', final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors (projT1 (l x)): MachineDescriptor (IM (projT1 (l x)))
projectx: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors
Hpr_item_x: match equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |}, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | None => None end = Some (ox, final')
Hproject_x: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (projectx, final_descriptors')
project_xi: list (vtransition_item (IM (projT1 (l x))))
eqv_final': MachineDescriptor (IM (projT1 (l x)))
Hproject_xi: equivocator_vlsm_trace_project (IM (projT1 (l x))) [composite_transition_item_projection equivocator_IM x] eqv_final = Some (project_xi, eqv_final')final_descriptors' (projT1 (l x)) = eqv_final' ∧ finite_trace_projection_list IM (projT1 (l x)) projectx = project_ximessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
x: composite_transition_item equivocator_IM
final_descriptors', final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors (projT1 (l x)): MachineDescriptor (IM (projT1 (l x)))
projectx: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors
Hpr_item_x: match equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |}, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | None => None end = Some (ox, final')
Hproject_x: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (projectx, final_descriptors')
project_xi: list (vtransition_item (IM (projT1 (l x))))
eqv_final': MachineDescriptor (IM (projT1 (l x)))
Hproject_xi: match equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) eqv_final with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (project_xi, eqv_final')final_descriptors' (projT1 (l x)) = eqv_final' ∧ finite_trace_projection_list IM (projT1 (l x)) projectx = project_ximessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
x: composite_transition_item equivocator_IM
final_descriptors', final_descriptors: equivocator_descriptors
projectx: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors
Hpr_item_x: match equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |}, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | None => None end = Some (ox, final')
Hproject_x: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (projectx, final_descriptors')
project_xi: list (vtransition_item (IM (projT1 (l x))))
eqv_final': MachineDescriptor (IM (projT1 (l x)))
Hproject_xi: match equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (project_xi, eqv_final')final_descriptors' (projT1 (l x)) = eqv_final' ∧ finite_trace_projection_list IM (projT1 (l x)) projectx = project_ximessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
x: composite_transition_item equivocator_IM
final_descriptors', final_descriptors: equivocator_descriptors
projectx: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors
oitem': option (vtransition_item (IM (projT1 (l x))))
descriptor': MachineDescriptor (IM (projT1 (l x)))
Heqpr_item_x: equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) = Some (oitem', descriptor')
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |}, equivocator_descriptors_update final_descriptors (projT1 (l x)) descriptor') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 (l x)) descriptor') end = Some (ox, final')
Hproject_x: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (projectx, final_descriptors')
project_xi: list (vtransition_item (IM (projT1 (l x))))
eqv_final': MachineDescriptor (IM (projT1 (l x)))
Hproject_xi: match oitem' with | Some item' => Some ([item'], descriptor') | None => Some ([], descriptor') end = Some (project_xi, eqv_final')final_descriptors' (projT1 (l x)) = eqv_final' ∧ finite_trace_projection_list IM (projT1 (l x)) projectx = project_ximessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
x: composite_transition_item equivocator_IM
final_descriptors: equivocator_descriptors
item': vtransition_item (IM (projT1 (l x)))
eqv_final': MachineDescriptor (IM (projT1 (l x)))
Heqpr_item_x: equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) = Some (Some item', eqv_final')eqv_final' = eqv_final' ∧ finite_trace_projection_list IM (projT1 (l x)) [{| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |}] = [item']message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
x: composite_transition_item equivocator_IM
final_descriptors: equivocator_descriptors
item': vtransition_item (IM (projT1 (l x)))
eqv_final': MachineDescriptor (IM (projT1 (l x)))
Heqpr_item_x: equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) = Some (Some item', eqv_final')finite_trace_projection_list IM (projT1 (l x)) [{| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |}] = [item']message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
x: composite_transition_item equivocator_IM
final_descriptors: equivocator_descriptors
item': vtransition_item (IM (projT1 (l x)))
eqv_final': MachineDescriptor (IM (projT1 (l x)))
Heqpr_item_x: equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) = Some (Some item', eqv_final')match pre_VLSM_projection_transition_item_project (composite_type IM) (type (IM (projT1 (l x)))) (composite_project_label IM (projT1 (l x))) (λ s : _composite_state IM, s (projT1 (l x))) {| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |} with | Some b => [b] | None => [] end = [item']message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
l: label
input: option message
destination: state
output: option message
final_descriptors: equivocator_descriptors
item': vtransition_item (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})))
eqv_final': MachineDescriptor (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})))
Heqpr_item_x: equivocator_vlsm_transition_item_project (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) (composite_transition_item_projection equivocator_IM {| l := l; input := input; destination := destination; output := output |}) (final_descriptors (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) = Some (Some item', eqv_final')match pre_VLSM_projection_transition_item_project (composite_type IM) (type (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})))) (composite_project_label IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) (λ s : _composite_state IM, s (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) {| l := existT (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})) (VLSM.l item'); input := VLSM.input {| l := l; input := input; destination := destination; output := output |}; destination := equivocators_state_project final_descriptors (VLSM.destination {| l := l; input := input; destination := destination; output := output |}); output := VLSM.output {| l := l; input := input; destination := destination; output := output |} |} with | Some b => [b] | None => [] end = [item']message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
l: _composite_label equivocator_IM
input: option message
destination: _composite_state equivocator_IM
output: option message
final_descriptors: equivocator_descriptors
item': vtransition_item (IM (projT1 l))
eqv_final': MachineDescriptor (IM (projT1 l))
Heqpr_item_x: equivocator_vlsm_transition_item_project (IM (projT1 l)) (composite_transition_item_projection equivocator_IM {| l := l; input := input; destination := destination; output := output |}) (final_descriptors (projT1 l)) = Some (Some item', eqv_final')match pre_VLSM_projection_transition_item_project (composite_type IM) (type (IM (projT1 l))) (composite_project_label IM (projT1 l)) (λ s : _composite_state IM, s (projT1 l)) {| l := existT (projT1 l) (VLSM.l item'); input := input; destination := equivocators_state_project final_descriptors destination; output := output |} with | Some b => [b] | None => [] end = [item']message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
final_descriptors: equivocator_descriptors
item': vtransition_item (IM (projT1 (existT i li)))
eqv_final': MachineDescriptor (IM (projT1 (existT i li)))
Heqpr_item_x: equivocator_vlsm_transition_item_project (IM (projT1 (existT i li))) (composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |}) (final_descriptors (projT1 (existT i li))) = Some (Some item', eqv_final')match pre_VLSM_projection_transition_item_project (composite_type IM) (type (IM (projT1 (existT i li)))) (composite_project_label IM (projT1 (existT i li))) (λ s : _composite_state IM, s (projT1 (existT i li))) {| l := existT (projT1 (existT i li)) (l item'); input := input; destination := equivocators_state_project final_descriptors destination; output := output |} with | Some b => [b] | None => [] end = [item']message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
final_descriptors: equivocator_descriptors
item': vtransition_item (IM i)
eqv_final': MachineDescriptor (IM i)
Heqpr_item_x: equivocator_vlsm_transition_item_project (IM i) (composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |}) (final_descriptors i) = Some (Some item', eqv_final')match pre_VLSM_projection_transition_item_project (composite_type IM) (type (IM i)) (composite_project_label IM i) (λ s : _composite_state IM, s i) {| l := existT i (l item'); input := input; destination := equivocators_state_project final_descriptors destination; output := output |} with | Some b => [b] | None => [] end = [item']message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
final_descriptors: equivocator_descriptors
item': vtransition_item (IM i)
eqv_final': MachineDescriptor (IM i)
Heqpr_item_x: equivocator_vlsm_transition_item_project (IM i) (composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |}) (final_descriptors i) = Some (Some item', eqv_final')match match match decide (i = projT1 (l {| l := existT i (l item'); input := input; destination := equivocators_state_project final_descriptors destination; output := output |})) with | left e => Some (eq_rect_r (λ n : index, vlabel (IM n)) (projT2 (l {| l := existT i (l item'); input := input; destination := equivocators_state_project final_descriptors destination; output := output |})) e) | in_right => None end with | Some lY => Some {| l := lY; input := VLSM.input {| l := existT i (l item'); input := input; destination := equivocators_state_project final_descriptors destination; output := output |}; destination := VLSM.destination {| l := existT i (l item'); input := input; destination := equivocators_state_project final_descriptors destination; output := output |} i; output := VLSM.output {| l := existT i (l item'); input := input; destination := equivocators_state_project final_descriptors destination; output := output |} |} | None => None end with | Some b => [b] | None => [] end = [item']message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
final_descriptors: equivocator_descriptors
item': vtransition_item (IM i)
eqv_final': MachineDescriptor (IM i)
Heqpr_item_x: equivocator_vlsm_transition_item_project (IM i) (composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |}) (final_descriptors i) = Some (Some item', eqv_final')match match match decide (i = i) with | left e => Some (eq_rect_r (λ n : index, vlabel (IM n)) (l item') e) | in_right => None end with | Some lY => Some {| l := lY; input := input; destination := equivocators_state_project final_descriptors destination i; output := output |} | None => None end with | Some b => [b] | None => [] end = [item']message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
final_descriptors: equivocator_descriptors
item': vtransition_item (IM i)
eqv_final': MachineDescriptor (IM i)
Heqpr_item_x: equivocator_vlsm_transition_item_project (IM i) (composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |}) (final_descriptors i) = Some (Some item', eqv_final')
e: i = i[{| l := eq_rect_r (λ n : index, vlabel (IM n)) (l item') e; input := input; destination := equivocators_state_project final_descriptors destination i; output := output |}] = [item']message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
final_descriptors: equivocator_descriptors
item': vtransition_item (IM i)
eqv_final': MachineDescriptor (IM i)
Heqpr_item_x: equivocator_vlsm_transition_item_project (IM i) (composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |}) (final_descriptors i) = Some (Some item', eqv_final')
e: i = i{| l := eq_rect_r (λ n : index, vlabel (IM n)) (l item') e; input := input; destination := equivocators_state_project final_descriptors destination i; output := output |} = item'message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
final_descriptors: equivocator_descriptors
item': vtransition_item (IM i)
eqv_final': MachineDescriptor (IM i)
Heqpr_item_x: equivocator_vlsm_transition_item_project (IM i) (composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |}) (final_descriptors i) = Some (Some item', eqv_final')
e: i = i{| l := eq_rect_r (λ n : index, vlabel (IM n)) (l item') eq_refl; input := input; destination := equivocators_state_project final_descriptors destination i; output := output |} = item'message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
final_descriptors: equivocator_descriptors
item': vtransition_item (IM i)
eqv_final': MachineDescriptor (IM i)
Heqpr_item_x: equivocator_vlsm_transition_item_project (IM i) (composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |}) (final_descriptors i) = Some (Some item', eqv_final'){| l := eq_rect_r (λ n : index, vlabel (IM n)) (l item') eq_refl; input := input; destination := equivocators_state_project final_descriptors destination i; output := output |} = item'message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
final_descriptors: equivocator_descriptors
l: label
input0: option message
destination0: state
output0: option message
eqv_final': MachineDescriptor (IM i)
Heqpr_item_x: equivocator_vlsm_transition_item_project (IM i) (composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |}) (final_descriptors i) = Some (Some {| l := l; input := input0; destination := destination0; output := output0 |}, eqv_final'){| l := eq_rect_r (λ n : index, vlabel (IM n)) (VLSM.l {| l := l; input := input0; destination := destination0; output := output0 |}) eq_refl; input := input; destination := equivocators_state_project final_descriptors destination i; output := output |} = {| l := l; input := input0; destination := destination0; output := output0 |}message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
final_descriptors: equivocator_descriptors
l: label
input0: option message
destination0: state
output0: option message
eqv_final': MachineDescriptor (IM i)
Heqpr_item_x: (∃ Hex : existing_equivocator_label (IM i) (VLSM.l (composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |})), VLSM.l {| l := l; input := input0; destination := destination0; output := output0 |} = existing_equivocator_label_extract (IM i) (VLSM.l (composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |})) Hex) ∧ VLSM.input (composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |}) = VLSM.input {| l := l; input := input0; destination := destination0; output := output0 |} ∧ VLSM.output (composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |}) = VLSM.output {| l := l; input := input0; destination := destination0; output := output0 |} ∧ equivocator_state_descriptor_project (VLSM.destination (composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |})) (final_descriptors i) = VLSM.destination {| l := l; input := input0; destination := destination0; output := output0 |} ∧ eqv_final' = equivocator_label_descriptor (VLSM.l (composite_transition_item_projection equivocator_IM {| l := existT i li; input := input; destination := destination; output := output |})){| l := eq_rect_r (λ n : index, vlabel (IM n)) (VLSM.l {| l := l; input := input0; destination := destination0; output := output0 |}) eq_refl; input := input; destination := equivocators_state_project final_descriptors destination i; output := output |} = {| l := l; input := input0; destination := destination0; output := output0 |}message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
final_descriptors: equivocator_descriptors
l: label
input0: option message
destination0: state
output0: option message
eqv_final': MachineDescriptor (IM i)
Heqpr_item_x: (∃ Hex : existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl), l = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex) ∧ input = input0 ∧ output = output0 ∧ equivocator_state_descriptor_project (destination i) (final_descriptors i) = destination0 ∧ eqv_final' = equivocator_label_descriptor (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl){| l := eq_rect_r (λ n : index, vlabel (IM n)) l eq_refl; input := input; destination := equivocators_state_project final_descriptors destination i; output := output |} = {| l := l; input := input0; destination := destination0; output := output0 |}message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
final_descriptors: equivocator_descriptors
l: label
input0: option message
destination0: state
output0: option message
eqv_final': MachineDescriptor (IM i)
Hl: ∃ Hex : existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl), l = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex
Hinput: input = input0
Houtput: output = output0
Hdestination: equivocator_state_descriptor_project (destination i) (final_descriptors i) = destination0{| l := eq_rect_r (λ n : index, vlabel (IM n)) l eq_refl; input := input; destination := equivocators_state_project final_descriptors destination i; output := output |} = {| l := l; input := input0; destination := destination0; output := output0 |}reflexivity.message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
li: vlabel (equivocator_IM i)
destination: _composite_state equivocator_IM
final_descriptors: equivocator_descriptors
l: label
input0, output0: option message
eqv_final': MachineDescriptor (IM i)
Hl: ∃ Hex : existing_equivocator_label (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl), l = existing_equivocator_label_extract (IM i) (eq_rect_r (λ n : index, vlabel (equivocator_IM n)) li eq_refl) Hex{| l := eq_rect_r (λ n : index, vlabel (IM n)) l eq_refl; input := input0; destination := equivocators_state_project final_descriptors destination i; output := output0 |} = {| l := l; input := input0; destination := equivocator_state_descriptor_project (destination i) (final_descriptors i); output := output0 |}message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
x: composite_transition_item equivocator_IM
final_descriptors', final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
projectx: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors
Hpr_item_x: match equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |}, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | None => None end = Some (ox, final')
Hproject_x: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (projectx, final_descriptors')
eqv_final': MachineDescriptor (IM i)
project_xi: list (vtransition_item (IM i))
Hproject_xi: equivocator_vlsm_trace_project (IM i) match pre_VLSM_projection_transition_item_project (composite_type equivocator_IM) (equivocator_type (IM i)) (composite_project_label equivocator_IM i) (λ s : _composite_state equivocator_IM, s i) x with | Some b => [b] | None => [] end eqv_final = Some (project_xi, eqv_final')
n: i ≠ projT1 (l x)final_descriptors' i = eqv_final' ∧ finite_trace_projection_list IM i projectx = project_ximessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
x: composite_transition_item equivocator_IM
final_descriptors', final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
projectx: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors
Hpr_item_x: match equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |}, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | None => None end = Some (ox, final')
Hproject_x: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (projectx, final_descriptors')
eqv_final': MachineDescriptor (IM i)
project_xi: list (vtransition_item (IM i))
Hproject_xi: equivocator_vlsm_trace_project (IM i) [] eqv_final = Some (project_xi, eqv_final')
n: i ≠ projT1 (l x)final_descriptors' i = eqv_final' ∧ finite_trace_projection_list IM i projectx = project_ximessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
x: composite_transition_item equivocator_IM
final_descriptors', final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
projectx: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors
Hpr_item_x: match equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |}, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | None => None end = Some (ox, final')
Hproject_x: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (projectx, final_descriptors')
eqv_final': MachineDescriptor (IM i)
project_xi: list (vtransition_item (IM i))
Hproject_xi: Some ([], eqv_final) = Some (project_xi, eqv_final')
n: i ≠ projT1 (l x)final_descriptors' i = eqv_final' ∧ finite_trace_projection_list IM i projectx = project_ximessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
x: composite_transition_item equivocator_IM
final_descriptors', final_descriptors: equivocator_descriptors
projectx: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors
Hpr_item_x: match equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |}, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | None => None end = Some (ox, final')
Hproject_x: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (projectx, final_descriptors')
eqv_final': MachineDescriptor (IM i)
project_xi: list (vtransition_item (IM i))
Hproject_xi: Some ([], final_descriptors i) = Some (project_xi, eqv_final')
n: i ≠ projT1 (l x)final_descriptors' i = eqv_final' ∧ finite_trace_projection_list IM i projectx = project_ximessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
x: composite_transition_item equivocator_IM
final_descriptors', final_descriptors: equivocator_descriptors
projectx: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors
Hpr_item_x: match equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |}, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | None => None end = Some (ox, final')
Hproject_x: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (projectx, final_descriptors')
eqv_final': MachineDescriptor (IM i)
project_xi: list (vtransition_item (IM i))
Hproject_xi: Some ([], final_descriptors i) = Some (project_xi, eqv_final')
n: i ≠ projT1 (l x)
H0: [] = project_xi
H1: final_descriptors i = eqv_final'final_descriptors' i = final_descriptors i ∧ finite_trace_projection_list IM i projectx = []message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
x: composite_transition_item equivocator_IM
final_descriptors', final_descriptors: equivocator_descriptors
projectx: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors
Hpr_item_x: match equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |}, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | None => None end = Some (ox, final')
Hproject_x: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (projectx, final_descriptors')
Hproject_xi: Some ([], final_descriptors i) = Some ([], final_descriptors i)
n: i ≠ projT1 (l x)final_descriptors' i = final_descriptors i ∧ finite_trace_projection_list IM i projectx = []message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
x: composite_transition_item equivocator_IM
final_descriptors', final_descriptors: equivocator_descriptors
projectx: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors
Hpr_item_x: match equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |}, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 (l x)) deqv') | None => None end = Some (ox, final')
Hproject_x: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (projectx, final_descriptors')
n: i ≠ projT1 (l x)final_descriptors' i = final_descriptors i ∧ finite_trace_projection_list IM i projectx = []message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
x: composite_transition_item equivocator_IM
final_descriptors', final_descriptors: equivocator_descriptors
projectx: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors
oitem': option (vtransition_item (IM (projT1 (l x))))
descriptor': MachineDescriptor (IM (projT1 (l x)))
Heqpr_item_x: equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) = Some (oitem', descriptor')
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |}, equivocator_descriptors_update final_descriptors (projT1 (l x)) descriptor') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 (l x)) descriptor') end = Some (ox, final')
Hproject_x: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (projectx, final_descriptors')
n: i ≠ projT1 (l x)final_descriptors' i = final_descriptors i ∧ finite_trace_projection_list IM i projectx = []message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
x: composite_transition_item equivocator_IM
final_descriptors: equivocator_descriptors
item': vtransition_item (IM (projT1 (l x)))
descriptor': MachineDescriptor (IM (projT1 (l x)))
Heqpr_item_x: equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) = Some (Some item', descriptor')
n: i ≠ projT1 (l x)final_descriptors i = final_descriptors i ∧ finite_trace_projection_list IM i [{| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |}] = []message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
x: composite_transition_item equivocator_IM
final_descriptors: equivocator_descriptors
item': vtransition_item (IM (projT1 (l x)))
descriptor': MachineDescriptor (IM (projT1 (l x)))
Heqpr_item_x: equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) = Some (Some item', descriptor')
n: i ≠ projT1 (l x)finite_trace_projection_list IM i [{| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |}] = []message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
x: composite_transition_item equivocator_IM
final_descriptors: equivocator_descriptors
item': vtransition_item (IM (projT1 (l x)))
descriptor': MachineDescriptor (IM (projT1 (l x)))
Heqpr_item_x: equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) = Some (Some item', descriptor')
n: i ≠ projT1 (l x)match pre_VLSM_projection_transition_item_project (composite_type IM) (type (IM i)) (composite_project_label IM i) (λ s : _composite_state IM, s i) {| l := existT (projT1 (l x)) (l item'); input := input x; destination := equivocators_state_project final_descriptors (destination x); output := output x |} with | Some b => [b] | None => [] end = []reflexivity.message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
Free:= free_composite_vlsm IM: VLSM message
i: index
x: composite_transition_item equivocator_IM
final_descriptors: equivocator_descriptors
item': vtransition_item (IM (projT1 (l x)))
descriptor': MachineDescriptor (IM (projT1 (l x)))
Heqpr_item_x: equivocator_vlsm_transition_item_project (IM (projT1 (l x))) (composite_transition_item_projection equivocator_IM x) (final_descriptors (projT1 (l x))) = Some (Some item', descriptor')
n: i ≠ projT1 (l x)[] = []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_descriptors': equivocator_descriptors
trX0: list (composite_transition_item IM)
IHtr: ∀ trXi : list (vtransition_item (IM i)), equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) (final_descriptors' i) = Some (trXi, eqv_initial) → initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX0 = trXi
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr equivocators_trace_project_folder (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
trXi: list (vtransition_item (IM i))
eqv_final': MachineDescriptor (IM i)
trXi', project_xi: list (vtransition_item (IM i))
HtrXi': equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) tr) eqv_final' = Some (trXi', eqv_initial)
Hproject_xi: equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) [x]) eqv_final = Some (project_xi, eqv_final')
HeqtrXi: trXi = trXi' ++ project_xi
Hfinal'i: final_descriptors' i = eqv_final' ∧ finite_trace_projection_list IM i projectx = project_xiinitial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_descriptors': equivocator_descriptors
trX0: list (composite_transition_item IM)
IHtr: ∀ trXi : list (vtransition_item (IM i)), equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) (final_descriptors' i) = Some (trXi, eqv_initial) → initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX0 = trXi
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr equivocators_trace_project_folder (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
trXi: list (vtransition_item (IM i))
eqv_final': MachineDescriptor (IM i)
trXi', project_xi: list (vtransition_item (IM i))
HtrXi': equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) tr) eqv_final' = Some (trXi', eqv_initial)
Hproject_xi: equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) [x]) eqv_final = Some (project_xi, eqv_final')
HeqtrXi: trXi = trXi' ++ project_xi
Hfinal'i: final_descriptors' i = eqv_final'
Hpr_xi: finite_trace_projection_list IM i projectx = project_xiinitial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_descriptors': equivocator_descriptors
trX0: list (composite_transition_item IM)
IHtr: ∀ trXi : list (vtransition_item (IM i)), equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) (final_descriptors' i) = Some (trXi, eqv_initial) → initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX0 = trXi
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr equivocators_trace_project_folder (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
trXi: list (vtransition_item (IM i))
eqv_final': MachineDescriptor (IM i)
trXi', project_xi: list (vtransition_item (IM i))
HtrXi': equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) tr) (final_descriptors' i) = Some (trXi', eqv_initial)
Hproject_xi: equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) [x]) eqv_final = Some (project_xi, eqv_final')
HeqtrXi: trXi = trXi' ++ project_xi
Hfinal'i: final_descriptors' i = eqv_final'
Hpr_xi: finite_trace_projection_list IM i projectx = project_xiinitial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_descriptors': equivocator_descriptors
trX0: list (composite_transition_item IM)
trXi': list (vtransition_item (IM i))
IHtr: initial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX0 = trXi'
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr equivocators_trace_project_folder (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
trXi: list (vtransition_item (IM i))
eqv_final': MachineDescriptor (IM i)
project_xi: list (vtransition_item (IM i))
HtrXi': equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) tr) (final_descriptors' i) = Some (trXi', eqv_initial)
Hproject_xi: equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) [x]) eqv_final = Some (project_xi, eqv_final')
HeqtrXi: trXi = trXi' ++ project_xi
Hfinal'i: final_descriptors' i = eqv_final'
Hpr_xi: finite_trace_projection_list IM i projectx = project_xiinitial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_descriptors': equivocator_descriptors
trX0: list (composite_transition_item IM)
trXi': list (vtransition_item (IM i))
Heqv_initial: initial_descriptors i = eqv_initial
Hpr_trXi': finite_trace_projection_list IM i trX0 = trXi'
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr equivocators_trace_project_folder (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
trXi: list (vtransition_item (IM i))
eqv_final': MachineDescriptor (IM i)
project_xi: list (vtransition_item (IM i))
HtrXi': equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) tr) (final_descriptors' i) = Some (trXi', eqv_initial)
Hproject_xi: equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) [x]) eqv_final = Some (project_xi, eqv_final')
HeqtrXi: trXi = trXi' ++ project_xi
Hfinal'i: final_descriptors' i = eqv_final'
Hpr_xi: finite_trace_projection_list IM i projectx = project_xiinitial_descriptors i = eqv_initial ∧ finite_trace_projection_list IM i trX = trXimessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
eqv_initial: MachineDescriptor (IM i)
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_descriptors': equivocator_descriptors
trX0: list (composite_transition_item IM)
trXi': list (vtransition_item (IM i))
Heqv_initial: initial_descriptors i = eqv_initial
Hpr_trXi': finite_trace_projection_list IM i trX0 = trXi'
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr equivocators_trace_project_folder (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
trXi: list (vtransition_item (IM i))
eqv_final': MachineDescriptor (IM i)
project_xi: list (vtransition_item (IM i))
HtrXi': equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) tr) (final_descriptors' i) = Some (trXi', eqv_initial)
Hproject_xi: equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) [x]) eqv_final = Some (project_xi, eqv_final')
HeqtrXi: trXi = trXi' ++ project_xi
Hfinal'i: final_descriptors' i = eqv_final'
Hpr_xi: finite_trace_projection_list IM i projectx = project_xifinite_trace_projection_list IM i trX = trXiapply map_option_app. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
i: index
initial_descriptors: equivocator_descriptors
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_descriptors': equivocator_descriptors
trX0: list (composite_transition_item IM)
final_descriptors: equivocator_descriptors
eqv_final:= final_descriptors i: MachineDescriptor (IM i)
projectx: list (composite_transition_item IM)
Hproject_x: foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr equivocators_trace_project_folder (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrXi': equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) tr) (final_descriptors' i) = Some (finite_trace_projection_list IM i trX0, initial_descriptors i)
Hproject_xi: equivocator_vlsm_trace_project (IM i) (pre_VLSM_projection_trace_project (composite_type equivocator_IM) (type (equivocator_IM i)) (composite_project_label equivocator_IM i) (λ s : state, s i) [x]) eqv_final = Some (finite_trace_projection_list IM i projectx, final_descriptors' i)finite_trace_projection_list IM i (trX0 ++ projectx) = finite_trace_projection_list IM i trX0 ++ finite_trace_projection_list IM i projectx
A generalization of equivocators_transition_item_project_preserves_zero_descriptors
to full (valid) traces
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from PreFreeE is tr
descriptors, idescriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project descriptors tr = Some (trX, idescriptors)∀ i : index, descriptors i = Existing 0 → idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from PreFreeE is tr
descriptors, idescriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project descriptors tr = Some (trX, idescriptors)∀ i : index, descriptors i = Existing 0 → idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from PreFreeE is tr
descriptors, idescriptors: equivocator_descriptors∀ trX : list (composite_transition_item IM), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ i : index, descriptors i = Existing 0 → idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from PreFreeE is tr
idescriptors: equivocator_descriptors∀ (descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ i : index, descriptors i = Existing 0 → idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
H1: valid_state_prop PreFreeE s
idescriptors: equivocator_descriptors∀ (descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project descriptors [] = Some (trX, idescriptors) → ∀ i : index, descriptors i = Existing 0 → idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
tr: list transition_item
Htr: finite_valid_trace_from PreFreeE s tr
sf: state
iom, oom: option message
l: label
Hx: input_valid_transition PreFreeE l (finite_trace_last s tr, iom) (sf, oom)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
idescriptors: equivocator_descriptors
IHHtr: ∀ (descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ i : index, descriptors i = Existing 0 → idescriptors i = Existing 0∀ (descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project descriptors (tr ++ [x]) = Some (trX, idescriptors) → ∀ i : index, descriptors i = Existing 0 → idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
H1: valid_state_prop PreFreeE s
idescriptors: equivocator_descriptors∀ (descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project descriptors [] = Some (trX, idescriptors) → ∀ i : index, descriptors i = Existing 0 → idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
H1: valid_state_prop PreFreeE s
idescriptors, descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project descriptors [] = Some (trX, idescriptors)
i: index
H2: descriptors i = Existing 0idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
H1: valid_state_prop PreFreeE s
idescriptors, descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project descriptors [] = Some (trX, idescriptors)
i: index
H2: descriptors i = Existing 0
H4: [] = trX
H5: descriptors = idescriptorsidescriptors i = Existing 0assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
H1: valid_state_prop PreFreeE s
idescriptors: equivocator_descriptors
HtrX: equivocators_trace_project idescriptors [] = Some ([], idescriptors)
i: index
H2: idescriptors i = Existing 0idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
tr: list transition_item
Htr: finite_valid_trace_from PreFreeE s tr
sf: state
iom, oom: option message
l: label
Hx: input_valid_transition PreFreeE l (finite_trace_last s tr, iom) (sf, oom)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
idescriptors: equivocator_descriptors
IHHtr: ∀ (descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ i : index, descriptors i = Existing 0 → idescriptors i = Existing 0∀ (descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project descriptors (tr ++ [x]) = Some (trX, idescriptors) → ∀ i : index, descriptors i = Existing 0 → idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
tr: list transition_item
Htr: finite_valid_trace_from PreFreeE s tr
sf: state
iom, oom: option message
l: label
Hx: input_valid_transition PreFreeE l (finite_trace_last s tr, iom) (sf, oom)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
idescriptors: equivocator_descriptors
IHHtr: ∀ (descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ i : index, descriptors i = Existing 0 → idescriptors i = Existing 0
descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project descriptors (tr ++ [x]) = Some (trX, idescriptors)
i: index
Hi: descriptors i = Existing 0idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
tr: list transition_item
Htr: finite_valid_trace_from PreFreeE s tr
sf: state
iom, oom: option message
l: label
Hx: input_valid_transition PreFreeE l (finite_trace_last s tr, iom) (sf, oom)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
idescriptors: equivocator_descriptors
IHHtr: ∀ (descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ i : index, descriptors i = Existing 0 → idescriptors i = Existing 0
descriptors: equivocator_descriptors
trX, preX, sufX: list (composite_transition_item IM)
descriptors': equivocator_descriptors
Hproject_x: equivocators_trace_project descriptors [x] = Some (sufX, descriptors')
Hproject_tr: equivocators_trace_project descriptors' tr = Some (preX, idescriptors)
i: index
Hi: descriptors i = Existing 0idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
tr: list transition_item
Htr: finite_valid_trace_from PreFreeE s tr
sf: state
iom, oom: option message
l: label
Hx: input_valid_transition PreFreeE l (finite_trace_last s tr, iom) (sf, oom)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
idescriptors: equivocator_descriptors
IHHtr: ∀ (descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ i : index, descriptors i = Existing 0 → idescriptors i = Existing 0
descriptors: equivocator_descriptors
trX, preX, sufX: list (composite_transition_item IM)
descriptors': equivocator_descriptors
Hproject_x: match equivocators_transition_item_project descriptors x with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, descriptors')
Hproject_tr: equivocators_trace_project descriptors' tr = Some (preX, idescriptors)
i: index
Hi: descriptors i = Existing 0idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
tr: list transition_item
Htr: finite_valid_trace_from PreFreeE s tr
sf: state
iom, oom: option message
l: label
Hx: input_valid_transition PreFreeE l (finite_trace_last s tr, iom) (sf, oom)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
idescriptors: equivocator_descriptors
IHHtr: ∀ (descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ i : index, descriptors i = Existing 0 → idescriptors i = Existing 0
descriptors: equivocator_descriptors
trX, preX, sufX: list (composite_transition_item IM)
descriptors': equivocator_descriptors
oitemx: option (composite_transition_item IM)
_descriptors': equivocator_descriptors
Hpr_x: equivocators_transition_item_project descriptors x = Some (oitemx, _descriptors')
Hproject_x: match oitemx with | Some item' => Some ([item'], _descriptors') | None => Some ([], _descriptors') end = Some (sufX, descriptors')
Hproject_tr: equivocators_trace_project descriptors' tr = Some (preX, idescriptors)
i: index
Hi: descriptors i = Existing 0idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
tr: list transition_item
Htr: finite_valid_trace_from PreFreeE s tr
sf: state
iom, oom: option message
l: label
Hx: input_valid_transition PreFreeE l (finite_trace_last s tr, iom) (sf, oom)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
idescriptors: equivocator_descriptors
IHHtr: ∀ (descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ i : index, descriptors i = Existing 0 → idescriptors i = Existing 0
descriptors: equivocator_descriptors
trX, preX, sufX: list (composite_transition_item IM)
descriptors': equivocator_descriptors
oitemx: option (composite_transition_item IM)
Hproject_x: match oitemx with | Some item' => Some ([item'], descriptors') | None => Some ([], descriptors') end = Some (sufX, descriptors')
Hpr_x: equivocators_transition_item_project descriptors x = Some (oitemx, descriptors')
Hproject_tr: equivocators_trace_project descriptors' tr = Some (preX, idescriptors)
i: index
Hi: descriptors i = Existing 0idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
tr: list transition_item
Htr: finite_valid_trace_from PreFreeE s tr
sf: state
iom, oom: option message
l: label
Hx: input_valid_transition PreFreeE l (finite_trace_last s tr, iom) (sf, oom)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
idescriptors: equivocator_descriptors
IHHtr: ∀ (descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ i : index, descriptors i = Existing 0 → idescriptors i = Existing 0
descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
descriptors': equivocator_descriptors
oitemx: option (composite_transition_item IM)
Hpr_x: equivocators_transition_item_project descriptors x = Some (oitemx, descriptors')
Hproject_tr: equivocators_trace_project descriptors' tr = Some (preX, idescriptors)
i: index
Hi: descriptors i = Existing 0idescriptors i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
tr: list transition_item
Htr: finite_valid_trace_from PreFreeE s tr
sf: state
iom, oom: option message
l: label
Hv: composite_valid equivocator_IM l (finite_trace_last s tr, iom)
Ht: transition l (finite_trace_last s tr, iom) = (sf, oom)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
idescriptors: equivocator_descriptors
IHHtr: ∀ (descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ i : index, descriptors i = Existing 0 → idescriptors i = Existing 0
descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
descriptors': equivocator_descriptors
oitemx: option (composite_transition_item IM)
Hpr_x: equivocators_transition_item_project descriptors x = Some (oitemx, descriptors')
Hproject_tr: equivocators_trace_project descriptors' tr = Some (preX, idescriptors)
i: index
Hi: descriptors i = Existing 0idescriptors i = Existing 0eapply equivocators_transition_item_project_preserves_zero_descriptors with (item := x); cycle 1; eassumption. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
tr: list transition_item
Htr: finite_valid_trace_from PreFreeE s tr
sf: state
iom, oom: option message
l: label
Hv: composite_valid equivocator_IM l (finite_trace_last s tr, iom)
Ht: transition l (finite_trace_last s tr, iom) = (sf, oom)
x:= {| l := l; input := iom; destination := sf; output := oom |}: transition_item
idescriptors: equivocator_descriptors
IHHtr: ∀ (descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project descriptors tr = Some (trX, idescriptors) → ∀ i : index, descriptors i = Existing 0 → idescriptors i = Existing 0
descriptors: equivocator_descriptors
preX: list (composite_transition_item IM)
descriptors': equivocator_descriptors
oitemx: option (composite_transition_item IM)
Hpr_x: equivocators_transition_item_project descriptors x = Some (oitemx, descriptors')
Hproject_tr: equivocators_trace_project descriptors' tr = Some (preX, idescriptors)
i: index
Hi: descriptors i = Existing 0descriptors' i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is tr: state
Hproper: proper_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace_from PreFreeE is tr∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is tr: state
Hproper: proper_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace_from PreFreeE is tr∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from PreFreeE is tr∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors final_state → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)∀ is : composite_state equivocator_IM, let final_state := finite_trace_last is tr in finite_valid_trace_from PreFreeE is tr → ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors final_state → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace_from PreFreeE is []
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors [] = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is []) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ is : composite_state equivocator_IM, let final_state := finite_trace_last is tr in finite_valid_trace_from PreFreeE is tr → ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors final_state → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
is: composite_state equivocator_IM
final_state:= finite_trace_last is (tr ++ [x]): state
Htr: finite_valid_trace_from PreFreeE is (tr ++ [x])
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [x])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace_from PreFreeE is []
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors [] = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is []) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace_from PreFreeE is []
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ initial_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors [] = Some ([], initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is []) = finite_trace_last (equivocators_state_project initial_descriptors is) []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace_from PreFreeE is []
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ initial_descriptors : equivocator_descriptors, Some ([], final_descriptors) = Some ([], initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is []) = finite_trace_last (equivocators_state_project initial_descriptors is) []repeat split; assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace_from PreFreeE is []
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_stateSome ([], final_descriptors) = Some ([], final_descriptors) ∧ proper_equivocator_descriptors final_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is []) = finite_trace_last (equivocators_state_project final_descriptors is) []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ is : composite_state equivocator_IM, let final_state := finite_trace_last is tr in finite_valid_trace_from PreFreeE is tr → ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors final_state → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
is: composite_state equivocator_IM
final_state:= finite_trace_last is (tr ++ [x]): state
Htr: finite_valid_trace_from PreFreeE is (tr ++ [x])
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [x])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ is : composite_state equivocator_IM, let final_state := finite_trace_last is tr in finite_valid_trace_from PreFreeE is tr → ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors final_state → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
is: composite_state equivocator_IM
final_state:= finite_trace_last is (tr ++ [x]): state
Htr: finite_valid_trace_from PreFreeE is tr ∧ finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [x])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ is : composite_state equivocator_IM, let final_state := finite_trace_last is tr in finite_valid_trace_from PreFreeE is tr → ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors final_state → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
is: composite_state equivocator_IM
final_state:= finite_trace_last is (tr ++ [x]): state
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [x])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
final_state:= finite_trace_last is (tr ++ [x]): state
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [x])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
final_state:= finite_trace_last is (tr ++ [x]): state
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state
Hproperx: proper_equivocator_descriptors final_descriptors (destination x) → ∃ (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_transition_item_project final_descriptors x = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l x))) (projT2 (l x)), existT (projT1 (l x)) (existing_equivocator_label_extract (IM (projT1 (l x))) (projT2 (l x)) Hex) = l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project final_descriptors (destination x) = destination itemx ∧ eqv_descriptors' (projT1 (l x)) = equivocator_label_descriptor (projT2 (l x)) | None => True end ∧ (∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l x) (s, input x) → composite_transition equivocator_IM (l x) (s, input x) = (destination x, output x) → proper_equivocator_descriptors eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (l x)) (eqv_descriptors' (projT1 (l x))) ∧ s = state_update equivocator_IM (destination x) (projT1 (l x)) (s (projT1 (l x))) ∧ previous_state_descriptor_prop (IM (projT1 (l x))) (final_descriptors (projT1 (l x))) (s (projT1 (l x))) (eqv_descriptors' (projT1 (l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination x) = equivocators_state_project eqv_descriptors' s end)∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [x])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
final_state:= finite_trace_last is (tr ++ [x]): state
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (finite_trace_last is (tr ++ [x]))
Hproperx: proper_equivocator_descriptors final_descriptors (destination x) → ∃ (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_transition_item_project final_descriptors x = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l x))) (projT2 (l x)), existT (projT1 (l x)) (existing_equivocator_label_extract (IM (projT1 (l x))) (projT2 (l x)) Hex) = l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project final_descriptors (destination x) = destination itemx ∧ eqv_descriptors' (projT1 (l x)) = equivocator_label_descriptor (projT2 (l x)) | None => True end ∧ (∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l x) (s, input x) → composite_transition equivocator_IM (l x) (s, input x) = (destination x, output x) → proper_equivocator_descriptors eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (l x)) (eqv_descriptors' (projT1 (l x))) ∧ s = state_update equivocator_IM (destination x) (projT1 (l x)) (s (projT1 (l x))) ∧ previous_state_descriptor_prop (IM (projT1 (l x))) (final_descriptors (projT1 (l x))) (s (projT1 (l x))) (eqv_descriptors' (projT1 (l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination x) = equivocators_state_project eqv_descriptors' s end)∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [x])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
final_state:= finite_trace_last is (tr ++ [x]): state
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination x)
Hproperx: proper_equivocator_descriptors final_descriptors (destination x) → ∃ (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_transition_item_project final_descriptors x = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l x))) (projT2 (l x)), existT (projT1 (l x)) (existing_equivocator_label_extract (IM (projT1 (l x))) (projT2 (l x)) Hex) = l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project final_descriptors (destination x) = destination itemx ∧ eqv_descriptors' (projT1 (l x)) = equivocator_label_descriptor (projT2 (l x)) | None => True end ∧ (∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l x) (s, input x) → composite_transition equivocator_IM (l x) (s, input x) = (destination x, output x) → proper_equivocator_descriptors eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (l x)) (eqv_descriptors' (projT1 (l x))) ∧ s = state_update equivocator_IM (destination x) (projT1 (l x)) (s (projT1 (l x))) ∧ previous_state_descriptor_prop (IM (projT1 (l x))) (final_descriptors (projT1 (l x))) (s (projT1 (l x))) (eqv_descriptors' (projT1 (l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination x) = equivocators_state_project eqv_descriptors' s end)∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [x])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
final_state:= finite_trace_last is (tr ++ [x]): state
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination x)
Hproperx: ∃ (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_transition_item_project final_descriptors x = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l x))) (projT2 (l x)), existT (projT1 (l x)) (existing_equivocator_label_extract (IM (projT1 (l x))) (projT2 (l x)) Hex) = l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project final_descriptors (destination x) = destination itemx ∧ eqv_descriptors' (projT1 (l x)) = equivocator_label_descriptor (projT2 (l x)) | None => True end ∧ (∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l x) (s, input x) → composite_transition equivocator_IM (l x) (s, input x) = (destination x, output x) → proper_equivocator_descriptors eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (l x)) (eqv_descriptors' (projT1 (l x))) ∧ s = state_update equivocator_IM (destination x) (projT1 (l x)) (s (projT1 (l x))) ∧ previous_state_descriptor_prop (IM (projT1 (l x))) (final_descriptors (projT1 (l x))) (s (projT1 (l x))) (eqv_descriptors' (projT1 (l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination x) = equivocators_state_project eqv_descriptors' s end)∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [x])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
final_state:= finite_trace_last is (tr ++ [x]): state
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination x)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hprojectx: equivocators_transition_item_project final_descriptors x = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l x))) (projT2 (l x)), existT (projT1 (l x)) (existing_equivocator_label_extract (IM (projT1 (l x))) (projT2 (l x)) Hex) = l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project final_descriptors (destination x) = destination itemx ∧ final_descriptors' (projT1 (l x)) = equivocator_label_descriptor (projT2 (l x)) | None => True end
Hproperx: ∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l x) (s, input x) → composite_transition equivocator_IM (l x) (s, input x) = (destination x, output x) → proper_equivocator_descriptors final_descriptors' s ∧ final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (l x)) (final_descriptors' (projT1 (l x))) ∧ s = state_update equivocator_IM (destination x) (projT1 (l x)) (s (projT1 (l x))) ∧ previous_state_descriptor_prop (IM (projT1 (l x))) (final_descriptors (projT1 (l x))) (s (projT1 (l x))) (final_descriptors' (projT1 (l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination x) = equivocators_state_project final_descriptors' s end∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [x])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
final_state:= finite_trace_last is (tr ++ [x]): state
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination x)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hprojectx: equivocators_transition_item_project final_descriptors x = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l x))) (projT2 (l x)), existT (projT1 (l x)) (existing_equivocator_label_extract (IM (projT1 (l x))) (projT2 (l x)) Hex) = l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project final_descriptors (destination x) = destination itemx ∧ final_descriptors' (projT1 (l x)) = equivocator_label_descriptor (projT2 (l x)) | None => True end
Hproperx: composite_valid equivocator_IM (l x) (finite_trace_last is tr, input x) → composite_transition equivocator_IM (l x) (finite_trace_last is tr, input x) = (destination x, output x) → proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (l x)) (final_descriptors' (projT1 (l x))) ∧ finite_trace_last is tr = state_update equivocator_IM (destination x) (projT1 (l x)) (finite_trace_last is tr (projT1 (l x))) ∧ previous_state_descriptor_prop (IM (projT1 (l x))) (final_descriptors (projT1 (l x))) (finite_trace_last is tr (projT1 (l x))) (final_descriptors' (projT1 (l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination x) = equivocators_state_project final_descriptors' (finite_trace_last is tr) end∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [x])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
final_state:= finite_trace_last is (tr ++ [x]): state
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination x)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hprojectx: equivocators_transition_item_project final_descriptors x = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l x))) (projT2 (l x)), existT (projT1 (l x)) (existing_equivocator_label_extract (IM (projT1 (l x))) (projT2 (l x)) Hex) = l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project final_descriptors (destination x) = destination itemx ∧ final_descriptors' (projT1 (l x)) = equivocator_label_descriptor (projT2 (l x)) | None => True end
Hproperx: composite_valid equivocator_IM (l x) (finite_trace_last is tr, input x) → composite_transition equivocator_IM (l x) (finite_trace_last is tr, input x) = (destination x, output x) → proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (l x)) (final_descriptors' (projT1 (l x))) ∧ finite_trace_last is tr = state_update equivocator_IM (destination x) (projT1 (l x)) (finite_trace_last is tr (projT1 (l x))) ∧ previous_state_descriptor_prop (IM (projT1 (l x))) (final_descriptors (projT1 (l x))) (finite_trace_last is tr (projT1 (l x))) (final_descriptors' (projT1 (l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination x) = equivocators_state_project final_descriptors' (finite_trace_last is tr) end∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder (Some ([], final_descriptors)) (tr ++ [x]) = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [x])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
final_state:= finite_trace_last is (tr ++ [x]): state
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination x)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hprojectx: equivocators_transition_item_project final_descriptors x = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l x))) (projT2 (l x)), existT (projT1 (l x)) (existing_equivocator_label_extract (IM (projT1 (l x))) (projT2 (l x)) Hex) = l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project final_descriptors (destination x) = destination itemx ∧ final_descriptors' (projT1 (l x)) = equivocator_label_descriptor (projT2 (l x)) | None => True end
Hproperx: composite_valid equivocator_IM (l x) (finite_trace_last is tr, input x) → composite_transition equivocator_IM (l x) (finite_trace_last is tr, input x) = (destination x, output x) → proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (l x)) (final_descriptors' (projT1 (l x))) ∧ finite_trace_last is tr = state_update equivocator_IM (destination x) (projT1 (l x)) (finite_trace_last is tr (projT1 (l x))) ∧ previous_state_descriptor_prop (IM (projT1 (l x))) (final_descriptors (projT1 (l x))) (finite_trace_last is tr (projT1 (l x))) (final_descriptors' (projT1 (l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination x) = equivocators_state_project final_descriptors' (finite_trace_last is tr) end∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder (foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x]) tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [x])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
final_state:= finite_trace_last is (tr ++ [x]): state
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination x)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hprojectx: equivocators_transition_item_project final_descriptors x = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l x))) (projT2 (l x)), existT (projT1 (l x)) (existing_equivocator_label_extract (IM (projT1 (l x))) (projT2 (l x)) Hex) = l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project final_descriptors (destination x) = destination itemx ∧ final_descriptors' (projT1 (l x)) = equivocator_label_descriptor (projT2 (l x)) | None => True end
Hproperx: composite_valid equivocator_IM (l x) (finite_trace_last is tr, input x) → composite_transition equivocator_IM (l x) (finite_trace_last is tr, input x) = (destination x, output x) → proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (l x)) (final_descriptors' (projT1 (l x))) ∧ finite_trace_last is tr = state_update equivocator_IM (destination x) (projT1 (l x)) (finite_trace_last is tr (projT1 (l x))) ∧ previous_state_descriptor_prop (IM (projT1 (l x))) (final_descriptors (projT1 (l x))) (finite_trace_last is tr (projT1 (l x))) (final_descriptors' (projT1 (l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination x) = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqfoldx: foldx = foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x]∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder foldx tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [x])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
final_state:= finite_trace_last is (tr ++ [x]): state
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination x)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hprojectx: equivocators_transition_item_project final_descriptors x = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l x))) (projT2 (l x)), existT (projT1 (l x)) (existing_equivocator_label_extract (IM (projT1 (l x))) (projT2 (l x)) Hex) = l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project final_descriptors (destination x) = destination itemx ∧ final_descriptors' (projT1 (l x)) = equivocator_label_descriptor (projT2 (l x)) | None => True end
Hproperx: composite_valid equivocator_IM (l x) (finite_trace_last is tr, input x) → composite_transition equivocator_IM (l x) (finite_trace_last is tr, input x) = (destination x, output x) → proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (l x)) (final_descriptors' (projT1 (l x))) ∧ finite_trace_last is tr = state_update equivocator_IM (destination x) (projT1 (l x)) (finite_trace_last is tr (projT1 (l x))) ∧ previous_state_descriptor_prop (IM (projT1 (l x))) (final_descriptors (projT1 (l x))) (finite_trace_last is tr (projT1 (l x))) (final_descriptors' (projT1 (l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination x) = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqfoldx: foldx = match equivocators_transition_item_project final_descriptors x with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder foldx tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [x])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
final_state:= finite_trace_last is (tr ++ [x]): state
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination x)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hprojectx: equivocators_transition_item_project final_descriptors x = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l x))) (projT2 (l x)), existT (projT1 (l x)) (existing_equivocator_label_extract (IM (projT1 (l x))) (projT2 (l x)) Hex) = l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project final_descriptors (destination x) = destination itemx ∧ final_descriptors' (projT1 (l x)) = equivocator_label_descriptor (projT2 (l x)) | None => True end
Hproperx: composite_valid equivocator_IM (l x) (finite_trace_last is tr, input x) → composite_transition equivocator_IM (l x) (finite_trace_last is tr, input x) = (destination x, output x) → proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (l x)) (final_descriptors' (projT1 (l x))) ∧ finite_trace_last is tr = state_update equivocator_IM (destination x) (projT1 (l x)) (finite_trace_last is tr (projT1 (l x))) ∧ previous_state_descriptor_prop (IM (projT1 (l x))) (final_descriptors (projT1 (l x))) (finite_trace_last is tr (projT1 (l x))) (final_descriptors' (projT1 (l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination x) = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder foldx tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [x])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
final_state:= finite_trace_last is (tr ++ [x]): state
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination x)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hprojectx: equivocators_transition_item_project final_descriptors x = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l x))) (projT2 (VLSM.l x)), existT (projT1 (VLSM.l x)) (existing_equivocator_label_extract (IM (projT1 (VLSM.l x))) (projT2 (VLSM.l x)) Hex) = VLSM.l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project final_descriptors (destination x) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l x)) = equivocator_label_descriptor (projT2 (VLSM.l x)) | None => True end
Hproperx: composite_valid equivocator_IM (VLSM.l x) (finite_trace_last is tr, input x) → composite_transition equivocator_IM (VLSM.l x) (finite_trace_last is tr, input x) = (destination x, output x) → proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l x)) (final_descriptors' (projT1 (VLSM.l x))) ∧ finite_trace_last is tr = state_update equivocator_IM (destination x) (projT1 (VLSM.l x)) (finite_trace_last is tr (projT1 (VLSM.l x))) ∧ previous_state_descriptor_prop (IM (projT1 (VLSM.l x))) (final_descriptors (projT1 (VLSM.l x))) (finite_trace_last is tr (projT1 (VLSM.l x))) (final_descriptors' (projT1 (VLSM.l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → composite_valid IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination x) = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
s: state
tl: list transition_item
s': state
iom, oom: option message
l: label
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)
H1: s' = finite_trace_last is tr
H3: {| l := l; input := iom; destination := s; output := oom |} = x
H4: tl = []∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder foldx tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hproperx: composite_valid equivocator_IM (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (finite_trace_last is tr, input {| l := l; input := iom; destination := s; output := oom |}) → composite_transition equivocator_IM (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (finite_trace_last is tr, input {| l := l; input := iom; destination := s; output := oom |}) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → composite_valid IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder foldx tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hproperx: composite_valid equivocator_IM (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (finite_trace_last is tr, input {| l := l; input := iom; destination := s; output := oom |}) → composite_transition equivocator_IM (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (finite_trace_last is tr, input {| l := l; input := iom; destination := s; output := oom |}) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → composite_valid IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder foldx tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hproperx: composite_valid equivocator_IM (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (finite_trace_last is tr, input {| l := l; input := iom; destination := s; output := oom |}) → composite_transition equivocator_IM (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (finite_trace_last is tr, input {| l := l; input := iom; destination := s; output := oom |}) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → composite_valid IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder foldx tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hproperx: proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → composite_valid IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder foldx tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → composite_valid IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder foldx tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
IHtr: ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
oitem: option (composite_transition_item IM)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → composite_valid IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder foldx tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors' tr = Some (trX', initial_descriptors)
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
Hlst: equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
oitem: option (composite_transition_item IM)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → composite_valid IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder foldx tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors' tr = Some (trX', initial_descriptors)
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
Hlst: equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
item: composite_transition_item IM
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → composite_valid IM (VLSM.l item) (sx, input item) ∧ composite_transition IM (VLSM.l item) (sx, input item) = (destination item, output item)
Hitemx: (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l item) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input item ∧ output {| l := l; input := iom; destination := s; output := oom |} = output item ∧ equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination item ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqfoldx: foldx = Some ([item], final_descriptors')
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder foldx tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors' tr = Some (trX', initial_descriptors)
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
Hlst: equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project final_descriptors' (finite_trace_last is tr)
Hitemx: True
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqfoldx: foldx = Some ([], final_descriptors')
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder foldx tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors' tr = Some (trX', initial_descriptors)
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
Hlst: equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
item: composite_transition_item IM
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → composite_valid IM (VLSM.l item) (sx, input item) ∧ composite_transition IM (VLSM.l item) (sx, input item) = (destination item, output item)
Hitemx: (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l item) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input item ∧ output {| l := l; input := iom; destination := s; output := oom |} = output item ∧ equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination item ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqfoldx: foldx = Some ([item], final_descriptors')
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder foldx tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors' tr = Some (trX', initial_descriptors)
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
Hlst: equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
item: composite_transition_item IM
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → composite_valid IM (VLSM.l item) (sx, input item) ∧ composite_transition IM (VLSM.l item) (sx, input item) = (destination item, output item)
Hitemx: (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item) ∧ iom = input item ∧ oom = output item ∧ equivocators_state_project final_descriptors s = destination item ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqfoldx: foldx = Some ([item], final_descriptors')
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder foldx tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors' tr = Some (trX', initial_descriptors)
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
Hlst: equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
item: composite_transition_item IM
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → composite_valid IM (VLSM.l item) (sx, input item) ∧ composite_transition IM (VLSM.l item) (sx, input item) = (destination item, output item)
Hl: ∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project final_descriptors s = destination item
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqfoldx: foldx = Some ([item], final_descriptors')
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder foldx tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors' tr = Some (trX', initial_descriptors)
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
Hlst: equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
item: composite_transition_item IM
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: composite_valid IM (VLSM.l item) (equivocators_state_project final_descriptors' (finite_trace_last is tr), input item) ∧ composite_transition IM (VLSM.l item) (equivocators_state_project final_descriptors' (finite_trace_last is tr), input item) = (destination item, output item)
Hl: ∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project final_descriptors s = destination item
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqfoldx: foldx = Some ([item], final_descriptors')
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder foldx tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors' tr = Some (trX', initial_descriptors)
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
Hlst: equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
item: composite_transition_item IM
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hvx: composite_valid IM (VLSM.l item) (equivocators_state_project final_descriptors' (finite_trace_last is tr), input item)
Htx: composite_transition IM (VLSM.l item) (equivocators_state_project final_descriptors' (finite_trace_last is tr), input item) = (destination item, output item)
Hl: ∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project final_descriptors s = destination item
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqfoldx: foldx = Some ([item], final_descriptors')
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder foldx tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors' tr = Some (trX', initial_descriptors)
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
Hlst: equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
item: composite_transition_item IM
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hvx: composite_valid IM (VLSM.l item) (equivocators_state_project final_descriptors' (finite_trace_last is tr), input item)
Htx: composite_transition IM (VLSM.l item) (equivocators_state_project final_descriptors' (finite_trace_last is tr), input item) = (destination item, output item)
Hl: ∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project final_descriptors s = destination item
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqfoldx: foldx = Some ([item], final_descriptors')
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)foldr equivocators_trace_project_folder foldx tr = Some (trX' ++ [item], initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) (trX' ++ [item])message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors' tr = Some (trX', initial_descriptors)
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
Hlst: equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
item: composite_transition_item IM
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hvx: composite_valid IM (VLSM.l item) (equivocators_state_project final_descriptors' (finite_trace_last is tr), input item)
Htx: composite_transition IM (VLSM.l item) (equivocators_state_project final_descriptors' (finite_trace_last is tr), input item) = (destination item, output item)
Hl: ∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project final_descriptors s = destination item
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)foldr equivocators_trace_project_folder (Some ([item], final_descriptors')) tr = Some (trX' ++ [item], initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) (trX' ++ [item])message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors' tr = Some (trX', initial_descriptors)
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
Hlst: equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
item: composite_transition_item IM
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hvx: composite_valid IM (VLSM.l item) (equivocators_state_project final_descriptors' (finite_trace_last is tr), input item)
Htx: composite_transition IM (VLSM.l item) (equivocators_state_project final_descriptors' (finite_trace_last is tr), input item) = (destination item, output item)
Hl: ∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project final_descriptors s = destination item
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)Some (trX' ++ [item], initial_descriptors) = Some (trX' ++ [item], initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) (trX' ++ [item])message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors' tr = Some (trX', initial_descriptors)
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
Hlst: equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
item: composite_transition_item IM
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hvx: composite_valid IM (VLSM.l item) (equivocators_state_project final_descriptors' (finite_trace_last is tr), input item)
Htx: composite_transition IM (VLSM.l item) (equivocators_state_project final_descriptors' (finite_trace_last is tr), input item) = (destination item, output item)
Hl: ∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project final_descriptors s = destination item
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) (trX' ++ [item])message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors' tr = Some (trX', initial_descriptors)
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
Hlst: equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
item: composite_transition_item IM
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hvx: composite_valid IM (VLSM.l item) (equivocators_state_project final_descriptors' (finite_trace_last is tr), input item)
Htx: composite_transition IM (VLSM.l item) (equivocators_state_project final_descriptors' (finite_trace_last is tr), input item) = (destination item, output item)
Hl: ∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project final_descriptors s = destination item
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) (trX' ++ [item])assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors' tr = Some (trX', initial_descriptors)
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
Hlst: equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
item: composite_transition_item IM
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hvx: composite_valid IM (VLSM.l item) (equivocators_state_project final_descriptors' (finite_trace_last is tr), input item)
Htx: composite_transition IM (VLSM.l item) (equivocators_state_project final_descriptors' (finite_trace_last is tr), input item) = (destination item, output item)
Hl: ∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project final_descriptors s = destination item
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors' tr = Some (trX', initial_descriptors)
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
Hlst: equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project final_descriptors' (finite_trace_last is tr)
Hitemx: True
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqfoldx: foldx = Some ([], final_descriptors')
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), foldr equivocators_trace_project_folder foldx tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors' tr = Some (trX', initial_descriptors)
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
Hlst: equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project final_descriptors' (finite_trace_last is tr)
Hitemx: True
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqfoldx: foldx = Some ([], final_descriptors')
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)foldr equivocators_trace_project_folder foldx tr = Some (trX', initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors' tr = Some (trX', initial_descriptors)
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
Hlst: equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project final_descriptors' (finite_trace_last is tr)
Hitemx: True
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)foldr equivocators_trace_project_folder (Some ([], final_descriptors')) tr = Some (trX', initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors' tr = Some (trX', initial_descriptors)
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
Hlst: equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project final_descriptors' (finite_trace_last is tr)
Hitemx: True
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)equivocators_state_project final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors' tr = Some (trX', initial_descriptors)
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
Hlst: equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project final_descriptors' (finite_trace_last is tr)
Hitemx: True
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors' tr = Some (trX', initial_descriptors)
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
Hlst: equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project final_descriptors' (finite_trace_last is tr)
Hitemx: True
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)equivocators_state_project final_descriptors s = finite_trace_last (equivocators_state_project initial_descriptors is) trX'message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors' tr = Some (trX', initial_descriptors)
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
Hlst: equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: equivocators_state_project final_descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr)
Hitemx: True
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)equivocators_state_project final_descriptors s = finite_trace_last (equivocators_state_project initial_descriptors is) trX'congruence. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
tr: list (composite_transition_item equivocator_IM)
is: composite_state equivocator_IM
final_descriptors': equivocator_descriptors
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors' tr = Some (trX', initial_descriptors)
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
Hlst: equivocators_state_project final_descriptors' (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX'
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Heq_ltr: finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hex_new: previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: equivocators_state_project final_descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr)
Hitemx: True
Hprojectx: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Htl: finite_valid_trace_from PreFreeE s []
Hv: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)equivocators_state_project final_descriptors s = finite_trace_last (equivocators_state_project initial_descriptors is) trX'message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from PreFreeE is tr∃ trX : list (composite_transition_item IM), equivocators_trace_project (zero_descriptor IM) tr = Some (trX, zero_descriptor IM)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from PreFreeE is tr∃ trX : list (composite_transition_item IM), equivocators_trace_project (zero_descriptor IM) tr = Some (trX, zero_descriptor IM)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from PreFreeE is tr
Hproject: let final_state := finite_trace_last is tr in proper_equivocator_descriptors (zero_descriptor IM) final_state → finite_valid_trace_from PreFreeE is tr → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project (zero_descriptor IM) tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project (zero_descriptor IM) (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX∃ trX : list (composite_transition_item IM), equivocators_trace_project (zero_descriptor IM) tr = Some (trX, zero_descriptor IM)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from PreFreeE is tr
Hproject: proper_equivocator_descriptors (zero_descriptor IM) (finite_trace_last is tr) → finite_valid_trace_from PreFreeE is tr → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project (zero_descriptor IM) tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project (zero_descriptor IM) (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX∃ trX : list (composite_transition_item IM), equivocators_trace_project (zero_descriptor IM) tr = Some (trX, zero_descriptor IM)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from PreFreeE is tr
Hproject: proper_equivocator_descriptors (zero_descriptor IM) (finite_trace_last is tr) → finite_valid_trace_from PreFreeE is tr → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project (zero_descriptor IM) tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project (zero_descriptor IM) (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trXproper_equivocator_descriptors (zero_descriptor IM) (finite_trace_last is tr)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from PreFreeE is tr
Hproject: finite_valid_trace_from PreFreeE is tr → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project (zero_descriptor IM) tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project (zero_descriptor IM) (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX∃ trX : list (composite_transition_item IM), equivocators_trace_project (zero_descriptor IM) tr = Some (trX, zero_descriptor IM)apply zero_descriptor_proper.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from PreFreeE is tr
Hproject: proper_equivocator_descriptors (zero_descriptor IM) (finite_trace_last is tr) → finite_valid_trace_from PreFreeE is tr → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project (zero_descriptor IM) tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project (zero_descriptor IM) (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trXproper_equivocator_descriptors (zero_descriptor IM) (finite_trace_last is tr)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from PreFreeE is tr
Hproject: finite_valid_trace_from PreFreeE is tr → ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project (zero_descriptor IM) tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project (zero_descriptor IM) (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX∃ trX : list (composite_transition_item IM), equivocators_trace_project (zero_descriptor IM) tr = Some (trX, zero_descriptor IM)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from PreFreeE is tr
Hproject: ∃ (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project (zero_descriptor IM) tr = Some (trX, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_state_project (zero_descriptor IM) (finite_trace_last is tr) = finite_trace_last (equivocators_state_project initial_descriptors is) trX∃ trX : list (composite_transition_item IM), equivocators_trace_project (zero_descriptor IM) tr = Some (trX, zero_descriptor IM)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from PreFreeE is tr
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject: equivocators_trace_project (zero_descriptor IM) tr = Some (trX, initial_descriptors)∃ trX : list (composite_transition_item IM), equivocators_trace_project (zero_descriptor IM) tr = Some (trX, zero_descriptor IM)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from PreFreeE is tr
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject: equivocators_trace_project (zero_descriptor IM) tr = Some (trX, initial_descriptors)equivocators_trace_project (zero_descriptor IM) tr = Some (trX, zero_descriptor IM)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from PreFreeE is tr
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject: equivocators_trace_project (zero_descriptor IM) tr = Some (trX, initial_descriptors)zero_descriptor IM = initial_descriptorsmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from PreFreeE is tr
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject: equivocators_trace_project (zero_descriptor IM) tr = Some (trX, initial_descriptors)∀ x : index, zero_descriptor IM x = initial_descriptors xmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from PreFreeE is tr
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject: equivocators_trace_project (zero_descriptor IM) tr = Some (trX, initial_descriptors)
i: indexzero_descriptor IM i = initial_descriptors imessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from PreFreeE is tr
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject: equivocators_trace_project (zero_descriptor IM) tr = Some (trX, initial_descriptors)
i: indexinitial_descriptors i = zero_descriptor IM ireflexivity. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from PreFreeE is tr
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject: equivocators_trace_project (zero_descriptor IM) tr = Some (trX, initial_descriptors)
i: indexzero_descriptor IM i = Existing 0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace PreFreeE is tr
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hproper: proper_equivocator_descriptors initial_descriptors isproper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace PreFreeE is tr
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hproper: proper_equivocator_descriptors initial_descriptors isproper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace PreFreeE is tr
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors isequivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is tr: state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is∀ trX : list (composite_transition_item IM), finite_valid_trace PreFreeE is tr → ∀ final_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is (tr ++ [x]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
IHtr: ∀ (final_state := finite_trace_last is tr) (trX : list (composite_transition_item IM)), finite_valid_trace PreFreeE is tr → ∀ final_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → proper_equivocator_descriptors final_descriptors final_state
trX: list (composite_transition_item IM)
Htr: finite_valid_trace PreFreeE is (tr ++ [x])
final_descriptors: equivocator_descriptors
Hproject: equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is (tr ++ [x]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
IHtr: ∀ (final_state := finite_trace_last is tr) (trX : list (composite_transition_item IM)), finite_valid_trace PreFreeE is tr → ∀ final_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → proper_equivocator_descriptors final_descriptors final_state
trX: list (composite_transition_item IM)
Htr: finite_valid_trace_from PreFreeE is (tr ++ [x])
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
Hproject: equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is (tr ++ [x]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
IHtr: ∀ (final_state := finite_trace_last is tr) (trX : list (composite_transition_item IM)), finite_valid_trace PreFreeE is tr → ∀ final_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → proper_equivocator_descriptors final_descriptors final_state
trX: list (composite_transition_item IM)
Htr: finite_valid_trace_from PreFreeE is tr ∧ finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
Hproject: equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is (tr ++ [x]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
IHtr: ∀ (final_state := finite_trace_last is tr) (trX : list (composite_transition_item IM)), finite_valid_trace PreFreeE is tr → ∀ final_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → proper_equivocator_descriptors final_descriptors final_state
trX: list (composite_transition_item IM)
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
Hproject: equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is (tr ++ [x]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
IHtr: ∀ (final_state := finite_trace_last is tr) (trX : list (composite_transition_item IM)), finite_valid_trace PreFreeE is tr → ∀ final_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → proper_equivocator_descriptors final_descriptors final_state
trX: list (composite_transition_item IM)
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
Hproject: foldr equivocators_trace_project_folder (Some ([], final_descriptors)) (tr ++ [x]) = Some (trX, initial_descriptors)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is (tr ++ [x]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
IHtr: ∀ (final_state := finite_trace_last is tr) (trX : list (composite_transition_item IM)), finite_valid_trace PreFreeE is tr → ∀ final_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → proper_equivocator_descriptors final_descriptors final_state
trX: list (composite_transition_item IM)
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
Hproject: foldr equivocators_trace_project_folder (foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x]) tr = Some (trX, initial_descriptors)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is (tr ++ [x]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
IHtr: ∀ (final_state := finite_trace_last is tr) (trX : list (composite_transition_item IM)), finite_valid_trace PreFreeE is tr → ∀ final_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → proper_equivocator_descriptors final_descriptors final_state
trX: list (composite_transition_item IM)
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
project_x: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqproject_x: project_x = foldr equivocators_trace_project_folder (Some ([], final_descriptors)) [x]
Hproject: foldr equivocators_trace_project_folder project_x tr = Some (trX, initial_descriptors)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is (tr ++ [x]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
IHtr: ∀ (final_state := finite_trace_last is tr) (trX : list (composite_transition_item IM)), finite_valid_trace PreFreeE is tr → ∀ final_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → proper_equivocator_descriptors final_descriptors final_state
trX: list (composite_transition_item IM)
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
project_x: option (list (composite_transition_item IM) * equivocator_descriptors)
Heqproject_x: project_x = match equivocators_transition_item_project final_descriptors x with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end
Hproject: foldr equivocators_trace_project_folder project_x tr = Some (trX, initial_descriptors)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is (tr ++ [x]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
IHtr: ∀ (final_state := finite_trace_last is tr) (trX : list (composite_transition_item IM)), finite_valid_trace PreFreeE is tr → ∀ final_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → proper_equivocator_descriptors final_descriptors final_state
trX: list (composite_transition_item IM)
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
x_descriptors: equivocator_descriptors
Heqproject_x: Some (x', x_descriptors) = match equivocators_transition_item_project final_descriptors x with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end
Hproject: foldr equivocators_trace_project_folder (Some (x', x_descriptors)) tr = Some (trX, initial_descriptors)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is (tr ++ [x]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
IHtr: ∀ (final_state := finite_trace_last is tr) (trX : list (composite_transition_item IM)), finite_valid_trace PreFreeE is tr → ∀ final_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → proper_equivocator_descriptors final_descriptors final_state
trX: list (composite_transition_item IM)
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
x_descriptors: equivocator_descriptors
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
Hproject_x: equivocators_transition_item_project final_descriptors x = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
Hproject: foldr equivocators_trace_project_folder (Some (x', x_descriptors)) tr = Some (trX, initial_descriptors)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is (tr ++ [x]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
IHtr: ∀ (final_state := finite_trace_last is tr) (trX : list (composite_transition_item IM)), finite_valid_trace PreFreeE is tr → ∀ final_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → proper_equivocator_descriptors final_descriptors final_state
trX: list (composite_transition_item IM)
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
x_descriptors: equivocator_descriptors
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
Hproject_x: equivocators_transition_item_project final_descriptors x = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
Hproject: ∃ trX0 : list (composite_transition_item IM), foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX0, initial_descriptors) ∧ trX = trX0 ++ x'proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is (tr ++ [x]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
IHtr: ∀ (final_state := finite_trace_last is tr) (trX : list (composite_transition_item IM)), finite_valid_trace PreFreeE is tr → ∀ final_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) → proper_equivocator_descriptors final_descriptors final_state
trX: list (composite_transition_item IM)
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
x_descriptors: equivocator_descriptors
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
Hproject_x: equivocators_transition_item_project final_descriptors x = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
HeqtrX: trX = trX' ++ x'proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is (tr ++ [x]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
Hproject_x: equivocators_transition_item_project final_descriptors x = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
HeqtrX: trX = trX' ++ x'proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is (tr ++ [x]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [x]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
Hproject_x: equivocators_transition_item_project final_descriptors x = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
HeqtrX: trX = trX' ++ x'
s: state
tl: list transition_item
s': state
iom, oom: option message
l: label
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)
H1: s' = finite_trace_last is tr
H3: {| l := l; input := iom; destination := s; output := oom |} = x
H4: tl = []proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hx: finite_valid_trace_from PreFreeE (finite_trace_last is tr) [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
Hproject_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
Hproject_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
Hproject_x: match equivocator_vlsm_transition_item_project (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (composite_transition_item_projection equivocator_IM {| l := l; input := iom; destination := s; output := oom |}) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (VLSM.l item'); input := input {| l := l; input := iom; destination := s; output := oom |}; destination := equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}); output := output {| l := l; input := iom; destination := s; output := oom |} |}, equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) deqv') | None => None end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
Hproject_x: match equivocator_vlsm_transition_item_project (IM (projT1 l)) (composite_transition_item_projection equivocator_IM {| l := l; input := iom; destination := s; output := oom |}) (final_descriptors (projT1 l)) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 l) (VLSM.l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 l) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 l) deqv') | None => None end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
Hproject_x: match equivocator_vlsm_transition_item_project (IM (projT1 l)) (composite_transition_item_projection_from_eq equivocator_IM {| l := l; input := iom; destination := s; output := oom |} (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) eq_refl) (final_descriptors (projT1 l)) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 l) (VLSM.l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 l) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 l) deqv') | None => None end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
Hproject_x: match equivocator_vlsm_transition_item_project (IM (projT1 l)) (composite_transition_item_projection_from_eq equivocator_IM {| l := l; input := iom; destination := s; output := oom |} (projT1 l) eq_refl) (final_descriptors (projT1 l)) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 l) (VLSM.l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 l) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 l) deqv') | None => None end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
Hproject_x: match equivocator_vlsm_transition_item_project (IM (projT1 l)) {| l := eq_rect_r (λ n : index, vlabel (equivocator_IM n)) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) eq_refl; input := input {| l := l; input := iom; destination := s; output := oom |}; destination := destination {| l := l; input := iom; destination := s; output := oom |} (projT1 l); output := output {| l := l; input := iom; destination := s; output := oom |} |} (final_descriptors (projT1 l)) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 l) (VLSM.l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 l) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 l) deqv') | None => None end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
Hproject_x: match equivocator_vlsm_transition_item_project (IM (projT1 l)) {| l := eq_rect_r (λ n : index, vlabel (equivocator_IM n)) (projT2 l) eq_refl; input := iom; destination := s (projT1 l); output := oom |} (final_descriptors (projT1 l)) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 l) (VLSM.l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 l) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 l) deqv') | None => None end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
Hproject_x: match equivocator_vlsm_transition_item_project (IM (projT1 l)) {| l := eq_rect (projT1 l) (λ y : index, vlabel (equivocator_IM y)) (projT2 l) (projT1 l) (eq_sym eq_refl); input := iom; destination := s (projT1 l); output := oom |} (final_descriptors (projT1 l)) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 l) (VLSM.l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 l) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 l) deqv') | None => None end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
Hproject_x: match equivocator_vlsm_transition_item_project (IM (projT1 l)) {| l := projT2 l; input := iom; destination := s (projT1 l); output := oom |} (final_descriptors (projT1 l)) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 l) (VLSM.l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 l) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 l) deqv') | None => None end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
projecti: option (option (vtransition_item (IM (projT1 l))) * MachineDescriptor (IM (projT1 l)))
Heqprojecti: projecti = equivocator_vlsm_transition_item_project (IM (projT1 l)) {| l := projT2 l; input := iom; destination := s (projT1 l); output := oom |} (final_descriptors (projT1 l))
Hproject_x: match projecti with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 l) (VLSM.l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 l) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update final_descriptors (projT1 l) deqv') | None => None end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
oitem'': option (vtransition_item (IM (projT1 l)))
ditem'': MachineDescriptor (IM (projT1 l))
Heqprojecti: Some (oitem'', ditem'') = equivocator_vlsm_transition_item_project (IM (projT1 l)) {| l := projT2 l; input := iom; destination := s (projT1 l); output := oom |} (final_descriptors (projT1 l))
Hproject_x: match oitem'' with | Some item' => Some (Some {| l := existT (projT1 l) (VLSM.l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 l) ditem'') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 l) ditem'') end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
oitem'': option (vtransition_item (IM (projT1 l)))
ditem'': MachineDescriptor (IM (projT1 l))
Heqprojecti: Some (oitem'', ditem'') = match final_descriptors (projT1 l) with | NewMachine _ => Some (None, final_descriptors (projT1 l)) | Existing j => match equivocator_state_project (s (projT1 l)) j with | Some sj => match projT2 l with | Spawn sn => if decide (j = equivocator_state_last (s (projT1 l))) then Some (None, NewMachine sn) else Some (None, Existing j) | ContinueWith i lx => if decide (i = j) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i) else Some (None, Existing j) | ForkWith i lx => if decide (j = equivocator_state_last (s (projT1 l))) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i) else Some (None, Existing j) end | None => None end end
Hproject_x: match oitem'' with | Some item' => Some (Some {| l := existT (projT1 l) (VLSM.l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 l) ditem'') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 l) ditem'') end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors final_statemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
final_state:= finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
oitem'': option (vtransition_item (IM (projT1 l)))
ditem'': MachineDescriptor (IM (projT1 l))
Heqprojecti: Some (oitem'', ditem'') = match final_descriptors (projT1 l) with | NewMachine _ => Some (None, final_descriptors (projT1 l)) | Existing j => match equivocator_state_project (s (projT1 l)) j with | Some sj => match projT2 l with | Spawn sn => if decide (j = equivocator_state_last (s (projT1 l))) then Some (None, NewMachine sn) else Some (None, Existing j) | ContinueWith i lx => if decide (i = j) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i) else Some (None, Existing j) | ForkWith i lx => if decide (j = equivocator_state_last (s (projT1 l))) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i) else Some (None, Existing j) end | None => None end end
Hproject_x: match oitem'' with | Some item' => Some (Some {| l := existT (projT1 l) (VLSM.l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 l) ditem'') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 l) ditem'') end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
oitem'': option (vtransition_item (IM (projT1 l)))
ditem'': MachineDescriptor (IM (projT1 l))
Heqprojecti: Some (oitem'', ditem'') = match final_descriptors (projT1 l) with | NewMachine _ => Some (None, final_descriptors (projT1 l)) | Existing j => match equivocator_state_project (s (projT1 l)) j with | Some sj => match projT2 l with | Spawn sn => if decide (j = equivocator_state_last (s (projT1 l))) then Some (None, NewMachine sn) else Some (None, Existing j) | ContinueWith i lx => if decide (i = j) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i) else Some (None, Existing j) | ForkWith i lx => if decide (j = equivocator_state_last (s (projT1 l))) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i) else Some (None, Existing j) end | None => None end end
Hproject_x: match oitem'' with | Some item' => Some (Some {| l := existT (projT1 l) (VLSM.l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 l) ditem'') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 l) ditem'') end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors (finite_trace_last is (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
oitem'': option (vtransition_item (IM (projT1 l)))
ditem'': MachineDescriptor (IM (projT1 l))
Heqprojecti: Some (oitem'', ditem'') = match final_descriptors (projT1 l) with | NewMachine _ => Some (None, final_descriptors (projT1 l)) | Existing j => match equivocator_state_project (s (projT1 l)) j with | Some sj => match projT2 l with | Spawn sn => if decide (j = equivocator_state_last (s (projT1 l))) then Some (None, NewMachine sn) else Some (None, Existing j) | ContinueWith i lx => if decide (i = j) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i) else Some (None, Existing j) | ForkWith i lx => if decide (j = equivocator_state_last (s (projT1 l))) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i) else Some (None, Existing j) end | None => None end end
Hproject_x: match oitem'' with | Some item' => Some (Some {| l := existT (projT1 l) (VLSM.l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 l) ditem'') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 l) ditem'') end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
oitem'': option (vtransition_item (IM (projT1 l)))
ditem'': MachineDescriptor (IM (projT1 l))
Heqprojecti: Some (oitem'', ditem'') = match final_descriptors (projT1 l) with | NewMachine _ => Some (None, final_descriptors (projT1 l)) | Existing j => match equivocator_state_project (s (projT1 l)) j with | Some sj => match projT2 l with | Spawn sn => if decide (j = equivocator_state_last (s (projT1 l))) then Some (None, NewMachine sn) else Some (None, Existing j) | ContinueWith i lx => if decide (i = j) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i) else Some (None, Existing j) | ForkWith i lx => if decide (j = equivocator_state_last (s (projT1 l))) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i) else Some (None, Existing j) end | None => None end end
Hproject_x: match oitem'' with | Some item' => Some (Some {| l := existT (projT1 l) (VLSM.l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 l) ditem'') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 l) ditem'') end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
oitem'': option (vtransition_item (IM (projT1 l)))
ditem'': MachineDescriptor (IM (projT1 l))
sn: vstate (IM (projT1 l))
Hfinali: final_descriptors (projT1 l) = NewMachine sn
Heqprojecti: Some (oitem'', ditem'') = Some (None, NewMachine sn)
Hproject_x: match oitem'' with | Some item' => Some (Some {| l := existT (projT1 l) (VLSM.l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 l) ditem'') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 l) ditem'') end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
oitem'': option (vtransition_item (IM (projT1 l)))
ditem'': MachineDescriptor (IM (projT1 l))
j: nat
Hfinali: final_descriptors (projT1 l) = Existing j
Heqprojecti: Some (oitem'', ditem'') = match equivocator_state_project (s (projT1 l)) j with | Some sj => match projT2 l with | Spawn sn => if decide (j = equivocator_state_last (s (projT1 l))) then Some (None, NewMachine sn) else Some (None, Existing j) | ContinueWith i lx => if decide (i = j) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i) else Some (None, Existing j) | ForkWith i lx => if decide (j = equivocator_state_last (s (projT1 l))) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i) else Some (None, Existing j) end | None => None end
Hproject_x: match oitem'' with | Some item' => Some (Some {| l := existT (projT1 l) (VLSM.l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 l) ditem'') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 l) ditem'') end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
oitem'': option (vtransition_item (IM (projT1 l)))
ditem'': MachineDescriptor (IM (projT1 l))
sn: vstate (IM (projT1 l))
Hfinali: final_descriptors (projT1 l) = NewMachine sn
Heqprojecti: Some (oitem'', ditem'') = Some (None, NewMachine sn)
Hproject_x: match oitem'' with | Some item' => Some (Some {| l := existT (projT1 l) (VLSM.l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 l) ditem'') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 l) ditem'') end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
oitem'': option (vtransition_item (IM (projT1 l)))
ditem'': MachineDescriptor (IM (projT1 l))
sn: vstate (IM (projT1 l))
Hfinali: final_descriptors (projT1 l) = NewMachine sn
Heqprojecti: Some (oitem'', ditem'') = Some (None, NewMachine sn)
Hproject_x: match oitem'' with | Some item' => Some (Some {| l := existT (projT1 l) (VLSM.l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 l) ditem'') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 l) ditem'') end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)
H2: oitem'' = None
H3: ditem'' = NewMachine snproper_equivocator_descriptors final_descriptors smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
sn: vstate (IM (projT1 l))
Hfinali: final_descriptors (projT1 l) = NewMachine sn
Heqprojecti: Some (None, NewMachine sn) = Some (None, NewMachine sn)
Hproject_x: Some (None, equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn)) = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
sn: vstate (IM (projT1 l))
Hfinali: final_descriptors (projT1 l) = NewMachine sn
Hproject_x: Some (None, equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn)) = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
sn: vstate (IM (projT1 l))
Hfinali: final_descriptors (projT1 l) = NewMachine sn
Hproject_x: Some (None, equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn)) = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)
H2: None = oitem'
H3: equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn) = ditem'proper_equivocator_descriptors final_descriptors smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
sn: vstate (IM (projT1 l))
Hfinali: final_descriptors (projT1 l) = NewMachine sn
Heqproject_x: Some (x', x_descriptors) = Some ([], equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn))
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
sn: vstate (IM (projT1 l))
Hfinali: final_descriptors (projT1 l) = NewMachine sn
Heqproject_x: Some (x', x_descriptors) = Some ([], equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn))
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)
H2: x' = []
H3: x_descriptors = equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn)proper_equivocator_descriptors final_descriptors smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 l))
IHtr: proper_equivocator_descriptors (equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn)) (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 l) = NewMachine sn
Heqproject_x: Some ([], equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn)) = Some ([], equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn))
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn))) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 l))
IHtr: proper_equivocator_descriptors (equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn)) (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 l) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn))) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 l))
IHtr: proper_equivocator_descriptors (equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn)) (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 l) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn))) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)
e: indexproper_descriptor (IM e) (final_descriptors e) (s e)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 l))
e: index
IHtr: proper_descriptor (IM e) (equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn) e) (finite_trace_last is tr e)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 l) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn))) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_descriptor (IM e) (final_descriptors e) (s e)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 l))
e: index
IHtr: proper_descriptor (IM e) (equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn) e) (finite_trace_last is tr e)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 l) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn))) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)
e0: e = projT1 lproper_descriptor (IM e) (final_descriptors e) (s e)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 l))
e: index
IHtr: proper_descriptor (IM e) (equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn) e) (finite_trace_last is tr e)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 l) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn))) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)
n: e ≠ projT1 lproper_descriptor (IM e) (final_descriptors e) (s e)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 l))
e: index
IHtr: proper_descriptor (IM e) (equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn) e) (finite_trace_last is tr e)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 l) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn))) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)
e0: e = projT1 lproper_descriptor (IM e) (final_descriptors e) (s e)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 l))
IHtr: proper_descriptor (IM (projT1 l)) (equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn) (projT1 l)) (finite_trace_last is tr (projT1 l))
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 l) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn))) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_descriptor (IM (projT1 l)) (final_descriptors (projT1 l)) (s (projT1 l))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 l))
IHtr: proper_descriptor (IM (projT1 l)) (Common.equivocator_descriptors_update IM final_descriptors (projT1 l) (NewMachine sn) (projT1 l)) (finite_trace_last is tr (projT1 l))
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 l) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn))) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_descriptor (IM (projT1 l)) (final_descriptors (projT1 l)) (s (projT1 l))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 l))
IHtr: proper_descriptor (IM (projT1 l)) (NewMachine sn) (finite_trace_last is tr (projT1 l))
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 l) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn))) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_descriptor (IM (projT1 l)) (final_descriptors (projT1 l)) (s (projT1 l))assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 l))
IHtr: proper_descriptor (IM (projT1 l)) (NewMachine sn) (finite_trace_last is tr (projT1 l))
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 l) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn))) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_descriptor (IM (projT1 l)) (NewMachine sn) (s (projT1 l))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 l))
e: index
IHtr: proper_descriptor (IM e) (equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn) e) (finite_trace_last is tr e)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 l) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn))) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)
n: e ≠ projT1 lproper_descriptor (IM e) (final_descriptors e) (s e)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 l))
e: index
IHtr: proper_descriptor (IM e) (Common.equivocator_descriptors_update IM final_descriptors (projT1 l) (NewMachine sn) e) (finite_trace_last is tr e)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 l) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn))) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)
n: e ≠ projT1 lproper_descriptor (IM e) (final_descriptors e) (s e)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 l))
e: index
IHtr: proper_descriptor (IM e) (final_descriptors e) (finite_trace_last is tr e)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 l) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn))) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)
n: e ≠ projT1 lproper_descriptor (IM e) (final_descriptors e) (s e)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 l))
e: index
IHtr: proper_descriptor (IM e) (final_descriptors e) (finite_trace_last is tr e)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 l) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn))) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Hv: input_valid PreFreeE l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)
n: e ≠ projT1 lproper_descriptor (IM e) (final_descriptors e) (s e)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 l))
e: index
IHtr: proper_descriptor (IM e) (final_descriptors e) (finite_trace_last is tr e)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 l) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn))) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Hv: input_valid PreFreeE l (finite_trace_last is tr, iom)
Ht: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)
n: e ≠ projT1 lproper_descriptor (IM e) (final_descriptors e) (s e)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 l))
e: index
IHtr: proper_descriptor (IM e) (final_descriptors e) (finite_trace_last is tr e)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 l) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn))) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Hv: input_valid PreFreeE l (finite_trace_last is tr, iom)
Ht: transition l (finite_trace_last is tr, iom) = (s, oom)
n: e ≠ projT1 lproper_descriptor (IM e) (final_descriptors e) (s e)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 l))
e: index
IHtr: proper_descriptor (IM e) (final_descriptors e) (finite_trace_last is tr e)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 l) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 l) (NewMachine sn))) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Hv: input_valid PreFreeE l (finite_trace_last is tr, iom)
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM i) li (finite_trace_last is tr i, iom) in (state_update equivocator_IM (finite_trace_last is tr) i si', om')) = (s, oom)
n: e ≠ projT1 lproper_descriptor (IM e) (final_descriptors e) (s e)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 (existT i li)))
e: index
IHtr: proper_descriptor (IM e) (final_descriptors e) (finite_trace_last is tr e)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 (existT i li)) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 (existT i li)) (NewMachine sn))) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Hv: input_valid PreFreeE (existT i li) (finite_trace_last is tr, iom)
Ht: (let (si', om') := vtransition (equivocator_IM i) li (finite_trace_last is tr i, iom) in (state_update equivocator_IM (finite_trace_last is tr) i si', om')) = (s, oom)
n: e ≠ projT1 (existT i li)proper_descriptor (IM e) (final_descriptors e) (s e)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 (existT i li)))
e: index
IHtr: proper_descriptor (IM e) (final_descriptors e) (finite_trace_last is tr e)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 (existT i li)) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 (existT i li)) (NewMachine sn))) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Hv: input_valid PreFreeE (existT i li) (finite_trace_last is tr, iom)
si': state
om': option message
Ht: (state_update equivocator_IM (finite_trace_last is tr) i si', om') = (s, oom)
n: e ≠ projT1 (existT i li)proper_descriptor (IM e) (final_descriptors e) (s e)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 (existT i li)))
e: index
IHtr: proper_descriptor (IM e) (final_descriptors e) (finite_trace_last is tr e)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 (existT i li)) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 (existT i li)) (NewMachine sn))) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Hv: input_valid PreFreeE (existT i li) (finite_trace_last is tr, iom)
si': state
om': option message
Ht: (state_update equivocator_IM (finite_trace_last is tr) i si', om') = (s, oom)
n: e ≠ projT1 (existT i li)
H2: state_update equivocator_IM (finite_trace_last is tr) i si' = s
H3: om' = oomproper_descriptor (IM e) (final_descriptors e) (state_update equivocator_IM (finite_trace_last is tr) i si' e)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 (existT i li)))
e: index
IHtr: proper_descriptor (IM e) (final_descriptors e) (finite_trace_last is tr e)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 (existT i li)) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 (existT i li)) (NewMachine sn))) tr = Some (trX', initial_descriptors)
si': state
Htl: finite_valid_trace_from PreFreeE (state_update equivocator_IM (finite_trace_last is tr) i si') []
Hv: input_valid PreFreeE (existT i li) (finite_trace_last is tr, iom)
Ht: (state_update equivocator_IM (finite_trace_last is tr) i si', oom) = (state_update equivocator_IM (finite_trace_last is tr) i si', oom)
n: e ≠ projT1 (existT i li)proper_descriptor (IM e) (final_descriptors e) (state_update equivocator_IM (finite_trace_last is tr) i si' e)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 (existT i li)))
e: index
IHtr: proper_descriptor (IM e) (final_descriptors e) (finite_trace_last is tr e)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 (existT i li)) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 (existT i li)) (NewMachine sn))) tr = Some (trX', initial_descriptors)
si': state
Htl: finite_valid_trace_from PreFreeE (state_update equivocator_IM (finite_trace_last is tr) i si') []
Hv: input_valid PreFreeE (existT i li) (finite_trace_last is tr, iom)
Ht: (state_update equivocator_IM (finite_trace_last is tr) i si', oom) = (state_update equivocator_IM (finite_trace_last is tr) i si', oom)
n: e ≠ iproper_descriptor (IM e) (final_descriptors e) (state_update equivocator_IM (finite_trace_last is tr) i si' e)assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
final_descriptors: equivocator_descriptors
sn: vstate (IM (projT1 (existT i li)))
e: index
IHtr: proper_descriptor (IM e) (final_descriptors e) (finite_trace_last is tr e)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
Hfinali: final_descriptors (projT1 (existT i li)) = NewMachine sn
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], equivocator_descriptors_update final_descriptors (projT1 (existT i li)) (NewMachine sn))) tr = Some (trX', initial_descriptors)
si': state
Htl: finite_valid_trace_from PreFreeE (state_update equivocator_IM (finite_trace_last is tr) i si') []
Hv: input_valid PreFreeE (existT i li) (finite_trace_last is tr, iom)
Ht: (state_update equivocator_IM (finite_trace_last is tr) i si', oom) = (state_update equivocator_IM (finite_trace_last is tr) i si', oom)
n: e ≠ iproper_descriptor (IM e) (final_descriptors e) (finite_trace_last is tr e)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
l: label
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
oitem'': option (vtransition_item (IM (projT1 l)))
ditem'': MachineDescriptor (IM (projT1 l))
j: nat
Hfinali: final_descriptors (projT1 l) = Existing j
Heqprojecti: Some (oitem'', ditem'') = match equivocator_state_project (s (projT1 l)) j with | Some sj => match projT2 l with | Spawn sn => if decide (j = equivocator_state_last (s (projT1 l))) then Some (None, NewMachine sn) else Some (None, Existing j) | ContinueWith i lx => if decide (i = j) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i) else Some (None, Existing j) | ForkWith i lx => if decide (j = equivocator_state_last (s (projT1 l))) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i) else Some (None, Existing j) end | None => None end
Hproject_x: match oitem'' with | Some item' => Some (Some {| l := existT (projT1 l) (VLSM.l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 l) ditem'') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 l) ditem'') end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
oitem'': option (vtransition_item (IM (projT1 (existT i li))))
ditem'': MachineDescriptor (IM (projT1 (existT i li)))
j: nat
Hfinali: final_descriptors (projT1 (existT i li)) = Existing j
Heqprojecti: Some (oitem'', ditem'') = match equivocator_state_project (s (projT1 (existT i li))) j with | Some sj => match projT2 (existT i li) with | Spawn sn => if decide (j = equivocator_state_last (s (projT1 (existT i li)))) then Some (None, NewMachine sn) else Some (None, Existing j) | ContinueWith i0 lx => if decide (i0 = j) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i0) else Some (None, Existing j) | ForkWith i0 lx => if decide (j = equivocator_state_last (s (projT1 (existT i li)))) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i0) else Some (None, Existing j) end | None => None end
Hproject_x: match oitem'' with | Some item' => Some (Some {| l := existT (projT1 (existT i li)) (l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 (existT i li)) ditem'') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 (existT i li)) ditem'') end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE (existT i li) (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
oitem'': option (vtransition_item (IM (projT1 (existT i li))))
ditem'': MachineDescriptor (IM (projT1 (existT i li)))
j: nat
Hfinali: final_descriptors (projT1 (existT i li)) = Existing j
Heqprojecti: Some (oitem'', ditem'') = match equivocator_state_project (s (projT1 (existT i li))) j with | Some sj => match li with | Spawn sn => if decide (j = equivocator_state_last (s (projT1 (existT i li)))) then Some (None, NewMachine sn) else Some (None, Existing j) | ContinueWith i0 lx => if decide (i0 = j) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i0) else Some (None, Existing j) | ForkWith i0 lx => if decide (j = equivocator_state_last (s (projT1 (existT i li)))) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i0) else Some (None, Existing j) end | None => None end
Hproject_x: match oitem'' with | Some item' => Some (Some {| l := existT (projT1 (existT i li)) (l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 (existT i li)) ditem'') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 (existT i li)) ditem'') end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE (existT i li) (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
oitem'': option (vtransition_item (IM (projT1 (existT i li))))
ditem'': MachineDescriptor (IM (projT1 (existT i li)))
j: nat
Hfinali: final_descriptors (projT1 (existT i li)) = Existing j
Heqprojecti: Some (oitem'', ditem'') = match equivocator_state_project (s i) j with | Some sj => match li with | Spawn sn => if decide (j = equivocator_state_last (s i)) then Some (None, NewMachine sn) else Some (None, Existing j) | ContinueWith i0 lx => if decide (i0 = j) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i0) else Some (None, Existing j) | ForkWith i0 lx => if decide (j = equivocator_state_last (s i)) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i0) else Some (None, Existing j) end | None => None end
Hproject_x: match oitem'' with | Some item' => Some (Some {| l := existT (projT1 (existT i li)) (l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 (existT i li)) ditem'') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 (existT i li)) ditem'') end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Ht: input_valid_transition PreFreeE (existT i li) (finite_trace_last is tr, iom) (s, oom)proper_equivocator_descriptors final_descriptors smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
oitem'': option (vtransition_item (IM (projT1 (existT i li))))
ditem'': MachineDescriptor (IM (projT1 (existT i li)))
j: nat
Hfinali: final_descriptors (projT1 (existT i li)) = Existing j
Heqprojecti: Some (oitem'', ditem'') = match equivocator_state_project (s i) j with | Some sj => match li with | Spawn sn => if decide (j = equivocator_state_last (s i)) then Some (None, NewMachine sn) else Some (None, Existing j) | ContinueWith i0 lx => if decide (i0 = j) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i0) else Some (None, Existing j) | ForkWith i0 lx => if decide (j = equivocator_state_last (s i)) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i0) else Some (None, Existing j) end | None => None end
Hproject_x: match oitem'' with | Some item' => Some (Some {| l := existT (projT1 (existT i li)) (l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 (existT i li)) ditem'') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 (existT i li)) ditem'') end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Hv: input_valid PreFreeE (existT i li) (finite_trace_last is tr, iom)
Ht: transition (existT i li) (finite_trace_last is tr, iom) = (s, oom)proper_equivocator_descriptors final_descriptors smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
oitem'': option (vtransition_item (IM (projT1 (existT i li))))
ditem'': MachineDescriptor (IM (projT1 (existT i li)))
j: nat
Hfinali: final_descriptors (projT1 (existT i li)) = Existing j
Heqprojecti: Some (oitem'', ditem'') = match equivocator_state_project (s i) j with | Some sj => match li with | Spawn sn => if decide (j = equivocator_state_last (s i)) then Some (None, NewMachine sn) else Some (None, Existing j) | ContinueWith i0 lx => if decide (i0 = j) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i0) else Some (None, Existing j) | ForkWith i0 lx => if decide (j = equivocator_state_last (s i)) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i0) else Some (None, Existing j) end | None => None end
Hproject_x: match oitem'' with | Some item' => Some (Some {| l := existT (projT1 (existT i li)) (l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 (existT i li)) ditem'') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 (existT i li)) ditem'') end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Hv: input_valid PreFreeE (existT i li) (finite_trace_last is tr, iom)
Ht: (let (si', om') := equivocator_transition (IM i) li (finite_trace_last is tr i, iom) in (state_update equivocator_IM (finite_trace_last is tr) i si', om')) = (s, oom)proper_equivocator_descriptors final_descriptors smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
oitem'': option (vtransition_item (IM (projT1 (existT i li))))
ditem'': MachineDescriptor (IM (projT1 (existT i li)))
j: nat
Hfinali: final_descriptors (projT1 (existT i li)) = Existing j
Heqprojecti: Some (oitem'', ditem'') = match equivocator_state_project (s i) j with | Some sj => match li with | Spawn sn => if decide (j = equivocator_state_last (s i)) then Some (None, NewMachine sn) else Some (None, Existing j) | ContinueWith i0 lx => if decide (i0 = j) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i0) else Some (None, Existing j) | ForkWith i0 lx => if decide (j = equivocator_state_last (s i)) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i0) else Some (None, Existing j) end | None => None end
Hproject_x: match oitem'' with | Some item' => Some (Some {| l := existT (projT1 (existT i li)) (l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 (existT i li)) ditem'') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 (existT i li)) ditem'') end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Hv: input_valid PreFreeE (existT i li) (finite_trace_last is tr, iom)
si': equivocator_state (IM i)
om': option message
Ht': equivocator_transition (IM i) li (finite_trace_last is tr i, iom) = (si', om')
Ht: (state_update equivocator_IM (finite_trace_last is tr) i si', om') = (s, oom)proper_equivocator_descriptors final_descriptors smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
oitem'': option (vtransition_item (IM (projT1 (existT i li))))
ditem'': MachineDescriptor (IM (projT1 (existT i li)))
j: nat
Hfinali: final_descriptors (projT1 (existT i li)) = Existing j
Heqprojecti: Some (oitem'', ditem'') = match equivocator_state_project (s i) j with | Some sj => match li with | Spawn sn => if decide (j = equivocator_state_last (s i)) then Some (None, NewMachine sn) else Some (None, Existing j) | ContinueWith i0 lx => if decide (i0 = j) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i0) else Some (None, Existing j) | ForkWith i0 lx => if decide (j = equivocator_state_last (s i)) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i0) else Some (None, Existing j) end | None => None end
Hproject_x: match oitem'' with | Some item' => Some (Some {| l := existT (projT1 (existT i li)) (l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 (existT i li)) ditem'') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 (existT i li)) ditem'') end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Hv: input_valid PreFreeE (existT i li) (finite_trace_last is tr, iom)
si': equivocator_state (IM i)
om': option message
Ht': equivocator_transition (IM i) li (finite_trace_last is tr i, iom) = (si', om')
Ht: (state_update equivocator_IM (finite_trace_last is tr) i si', om') = (s, oom)
H2: state_update equivocator_IM (finite_trace_last is tr) i si' = s
H3: om' = oomproper_equivocator_descriptors final_descriptors (state_update equivocator_IM (finite_trace_last is tr) i si')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
oitem'': option (vtransition_item (IM (projT1 (existT i li))))
ditem'': MachineDescriptor (IM (projT1 (existT i li)))
j: nat
Hfinali: final_descriptors (projT1 (existT i li)) = Existing j
Heqprojecti: Some (oitem'', ditem'') = match equivocator_state_project (s i) j with | Some sj => match li with | Spawn sn => if decide (j = equivocator_state_last (s i)) then Some (None, NewMachine sn) else Some (None, Existing j) | ContinueWith i0 lx => if decide (i0 = j) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i0) else Some (None, Existing j) | ForkWith i0 lx => if decide (j = equivocator_state_last (s i)) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i0) else Some (None, Existing j) end | None => None end
Hproject_x: match oitem'' with | Some item' => Some (Some {| l := existT (projT1 (existT i li)) (l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 (existT i li)) ditem'') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 (existT i li)) ditem'') end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Hv: input_valid PreFreeE (existT i li) (finite_trace_last is tr, iom)
si': equivocator_state (IM i)
Ht: (state_update equivocator_IM (finite_trace_last is tr) i si', oom) = (s, oom)
Ht': equivocator_transition (IM i) li (finite_trace_last is tr i, iom) = (si', oom)
H2: state_update equivocator_IM (finite_trace_last is tr) i si' = sproper_equivocator_descriptors final_descriptors (state_update equivocator_IM (finite_trace_last is tr) i si')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
oitem'': option (vtransition_item (IM (projT1 (existT i li))))
ditem'': MachineDescriptor (IM (projT1 (existT i li)))
j: nat
Hfinali: final_descriptors (projT1 (existT i li)) = Existing j
Heqprojecti: Some (oitem'', ditem'') = match equivocator_state_project (s i) j with | Some sj => match li with | Spawn sn => if decide (j = equivocator_state_last (s i)) then Some (None, NewMachine sn) else Some (None, Existing j) | ContinueWith i0 lx => if decide (i0 = j) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i0) else Some (None, Existing j) | ForkWith i0 lx => if decide (j = equivocator_state_last (s i)) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i0) else Some (None, Existing j) end | None => None end
Hproject_x: match oitem'' with | Some item' => Some (Some {| l := existT (projT1 (existT i li)) (l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 (existT i li)) ditem'') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 (existT i li)) ditem'') end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Hv: input_valid PreFreeE (existT i li) (finite_trace_last is tr, iom)
si': equivocator_state (IM i)
Ht': equivocator_transition (IM i) li (finite_trace_last is tr i, iom) = (si', oom)
H2: state_update equivocator_IM (finite_trace_last is tr) i si' = sproper_equivocator_descriptors final_descriptors (state_update equivocator_IM (finite_trace_last is tr) i si')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
oitem'': option (vtransition_item (IM (projT1 (existT i li))))
ditem'': MachineDescriptor (IM (projT1 (existT i li)))
j: nat
Hfinali: final_descriptors (projT1 (existT i li)) = Existing j
si': equivocator_state (IM i)
Heqprojecti: Some (oitem'', ditem'') = match equivocator_state_project si' j with | Some sj => match li with | Spawn sn => if decide (j = equivocator_state_last si') then Some (None, NewMachine sn) else Some (None, Existing j) | ContinueWith i0 lx => if decide (i0 = j) then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i0) else Some (None, Existing j) | ForkWith i0 lx => if decide (j = equivocator_state_last si') then Some ( Some {| l := lx; input := iom; destination := sj; output := oom |}, Existing i0) else Some (None, Existing j) end | None => None end
Hproject_x: match oitem'' with | Some item' => Some (Some {| l := existT (projT1 (existT i li)) (l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 (existT i li)) ditem'') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 (existT i li)) ditem'') end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Hv: input_valid PreFreeE (existT i li) (finite_trace_last is tr, iom)
Ht': equivocator_transition (IM i) li (finite_trace_last is tr i, iom) = (si', oom)
H2: state_update equivocator_IM (finite_trace_last is tr) i si' = sproper_equivocator_descriptors final_descriptors (state_update equivocator_IM (finite_trace_last is tr) i si')destruct li as [ndi | idi li | idi li] ; destruct (decide _) ; inversion Heqprojecti; subst; clear Heqprojecti ; inversion Hproject_x; subst; clear Hproject_x ; inversion Heqproject_x; subst; clear Heqproject_x ; intro eqv; specialize (IHtr eqv) ; (destruct (decide (eqv = i)) ; [subst eqv ; unfold equivocator_descriptors_update in IHtr; rewrite equivocator_descriptors_update_eq in IHtr ; simpl in *; rewrite Hfinali; rewrite state_update_eq ; eexists; exact Hj | unfold equivocator_descriptors_update in IHtr ; rewrite equivocator_descriptors_update_neq in IHtr ; [|assumption] ; rewrite state_update_neq; [|assumption] ; assumption ] ). Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
s: state
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
initial_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors initial_descriptors is
x_descriptors: equivocator_descriptors
IHtr: proper_equivocator_descriptors x_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from PreFreeE is tr
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
x': list (composite_transition_item IM)
oitem': option (composite_transition_item IM)
ditem': equivocator_descriptors
oitem'': option (vtransition_item (IM (projT1 (existT i li))))
ditem'': MachineDescriptor (IM (projT1 (existT i li)))
j: nat
Hfinali: final_descriptors (projT1 (existT i li)) = Existing j
si': equivocator_state (IM i)
si'j: vstate (IM i)
Hj: equivocator_state_project si' j = Some si'j
Heqprojecti: Some (oitem'', ditem'') = match li with | Spawn sn => if decide (j = equivocator_state_last si') then Some (None, NewMachine sn) else Some (None, Existing j) | ContinueWith i0 lx => if decide (i0 = j) then Some (Some {| l := lx; input := iom; destination := si'j; output := oom |}, Existing i0) else Some (None, Existing j) | ForkWith i0 lx => if decide (j = equivocator_state_last si') then Some (Some {| l := lx; input := iom; destination := si'j; output := oom |}, Existing i0) else Some (None, Existing j) end
Hproject_x: match oitem'' with | Some item' => Some (Some {| l := existT (projT1 (existT i li)) (l item'); input := iom; destination := equivocators_state_project final_descriptors s; output := oom |}, equivocator_descriptors_update final_descriptors (projT1 (existT i li)) ditem'') | None => Some (None, equivocator_descriptors_update final_descriptors (projT1 (existT i li)) ditem'') end = Some (oitem', ditem')
Heqproject_x: Some (x', x_descriptors) = match oitem' with | Some item' => Some ([item'], ditem') | None => Some ([], ditem') end
trX': list (composite_transition_item IM)
Hproject_x': foldr equivocators_trace_project_folder (Some ([], x_descriptors)) tr = Some (trX', initial_descriptors)
Htl: finite_valid_trace_from PreFreeE s []
Hv: input_valid PreFreeE (existT i li) (finite_trace_last is tr, iom)
Ht': equivocator_transition (IM i) li (finite_trace_last is tr i, iom) = (si', oom)
H2: state_update equivocator_IM (finite_trace_last is tr) i si' = sproper_equivocator_descriptors final_descriptors (state_update equivocator_IM (finite_trace_last is tr) i si')
A corrollary of preloaded_equivocators_valid_trace_from_project selecting
only the proper_equivocator_descriptors property.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hproper: proper_equivocator_descriptors final_descriptors final_stateproper_equivocator_descriptors initial_descriptors ismessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hproper: proper_equivocator_descriptors final_descriptors final_stateproper_equivocator_descriptors initial_descriptors ismessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hproper: proper_equivocator_descriptors final_descriptors final_state
_trX: list (composite_transition_item IM)
_initial_descriptors: equivocator_descriptors
_Hproject: equivocators_trace_project final_descriptors tr = Some (_trX, _initial_descriptors)
Hiproper: proper_equivocator_descriptors _initial_descriptors isproper_equivocator_descriptors initial_descriptors ismessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hproper: proper_equivocator_descriptors final_descriptors final_state
_trX: list (composite_transition_item IM)
_initial_descriptors: equivocator_descriptors
_Hproject: Some (trX, initial_descriptors) = Some (_trX, _initial_descriptors)
Hiproper: proper_equivocator_descriptors _initial_descriptors isproper_equivocator_descriptors initial_descriptors ismessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hproper: proper_equivocator_descriptors final_descriptors final_state
_trX: list (composite_transition_item IM)
_initial_descriptors: equivocator_descriptors
_Hproject: Some (trX, initial_descriptors) = Some (_trX, _initial_descriptors)
Hiproper: proper_equivocator_descriptors _initial_descriptors is
H2: trX = _trX
H3: initial_descriptors = _initial_descriptorsproper_equivocator_descriptors _initial_descriptors isassumption. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from PreFreeE is tr
final_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hproper: proper_equivocator_descriptors final_descriptors final_state
Hiproper: proper_equivocator_descriptors initial_descriptors is
_Hproject: Some (trX, initial_descriptors) = Some (trX, initial_descriptors)proper_equivocator_descriptors initial_descriptors ismessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
Hbbs: Exists (field_selector output m) tr∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
Hbbs: Exists (field_selector output m) tr∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
Hbbs: ∃ x : transition_item, x ∈ tr ∧ field_selector output m x∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
item: transition_item
Hitem: item ∈ tr
Hm: field_selector output m item∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
item: transition_item
Hitem: item ∈ tr
Hm: output item = Some m∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
item: transition_item
Hitem: {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM (projT1 (l item))) tr
Hm: output item = Some m∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
l: label
input: option message
destination: state
output: option message
Hitem: {| l := projT2 (VLSM.l {| l := l; input := input; destination := destination; output := output |}); input := VLSM.input {| l := l; input := input; destination := destination; output := output |}; destination := VLSM.destination {| l := l; input := input; destination := destination; output := output |} (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})); output := VLSM.output {| l := l; input := input; destination := destination; output := output |} |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) tr
Hm: VLSM.output {| l := l; input := input; destination := destination; output := output |} = Some m∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
l: _composite_label equivocator_IM
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := projT2 l; input := input; destination := destination (projT1 l); output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM (projT1 l)) tr
Hm: output = Some m∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := projT2 (existT i li); input := input; destination := destination (projT1 (existT i li)); output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM (projT1 (existT i li))) tr
Hm: output = Some m∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
Hex: Exists (field_selector VLSM.output m) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) → ∃ (j i0 : MachineDescriptor (IM i)) (_ : proper_descriptor (IM i) i0 (is i)) (_ : existing_descriptor (IM i) j (finite_trace_last (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr))) (trX : list (vtransition_item (IM i))) (_ : equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) j = Some (trX, i0)), Exists (field_selector VLSM.output m) trX∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
Hex: Exists (field_selector VLSM.output m) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) → ∃ (j i0 : MachineDescriptor (IM i)) (_ : proper_descriptor (IM i) i0 (is i)) (_ : existing_descriptor (IM i) j (finite_trace_last (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr))) (trX : list (vtransition_item (IM i))) (_ : equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) j = Some (trX, i0)), Exists (field_selector VLSM.output m) trXExists (field_selector VLSM.output m) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
Hex: ∃ (j i0 : MachineDescriptor (IM i)) (_ : proper_descriptor (IM i) i0 (is i)) (_ : existing_descriptor (IM i) j (finite_trace_last (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr))) (trX : list (vtransition_item (IM i))) (_ : equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) j = Some (trX, i0)), Exists (field_selector VLSM.output m) trX∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
Hex: Exists (field_selector VLSM.output m) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) → ∃ (j i0 : MachineDescriptor (IM i)) (_ : proper_descriptor (IM i) i0 (is i)) (_ : existing_descriptor (IM i) j (finite_trace_last (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr))) (trX : list (vtransition_item (IM i))) (_ : equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) j = Some (trX, i0)), Exists (field_selector VLSM.output m) trXExists (field_selector VLSM.output m) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
Hex: Exists (field_selector VLSM.output m) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) → ∃ (j i0 : MachineDescriptor (IM i)) (_ : proper_descriptor (IM i) i0 (is i)) (_ : existing_descriptor (IM i) j (finite_trace_last (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr))) (trX : list (vtransition_item (IM i))) (_ : equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) j = Some (trX, i0)), Exists (field_selector VLSM.output m) trX∃ x : transition_item, x ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr ∧ field_selector VLSM.output m xmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
Hex: Exists (field_selector VLSM.output m) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) → ∃ (j i0 : MachineDescriptor (IM i)) (_ : proper_descriptor (IM i) i0 (is i)) (_ : existing_descriptor (IM i) j (finite_trace_last (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr))) (trX : list (vtransition_item (IM i))) (_ : equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) j = Some (trX, i0)), Exists (field_selector VLSM.output m) trX?Goal0 ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr ∧ field_selector VLSM.output m ?Goal0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
Hex: Exists (field_selector VLSM.output m) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) → ∃ (j i0 : MachineDescriptor (IM i)) (_ : proper_descriptor (IM i) i0 (is i)) (_ : existing_descriptor (IM i) j (finite_trace_last (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr))) (trX : list (vtransition_item (IM i))) (_ : equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) j = Some (trX, i0)), Exists (field_selector VLSM.output m) trXfield_selector VLSM.output m {| l := li; input := input; destination := destination i; output := output |}reflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
Hitem: {| l := li; input := input; destination := destination i; output := Some m |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
Hex: Exists (field_selector output m) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) → ∃ (j i0 : MachineDescriptor (IM i)) (_ : proper_descriptor (IM i) i0 (is i)) (_ : existing_descriptor (IM i) j (finite_trace_last (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr))) (trX : list (vtransition_item (IM i))) (_ : equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) j = Some (trX, i0)), Exists (field_selector output m) trXfield_selector output m {| l := li; input := input; destination := destination i; output := Some m |}message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
Hex: ∃ (j i0 : MachineDescriptor (IM i)) (_ : proper_descriptor (IM i) i0 (is i)) (_ : existing_descriptor (IM i) j (finite_trace_last (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr))) (trX : list (vtransition_item (IM i))) (_ : equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) j = Some (trX, i0)), Exists (field_selector VLSM.output m) trX∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr))
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr))
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
Hlst: (λ s : vstate (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)), s i) (finite_trace_last is tr) = finite_trace_last ((λ s : vstate (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)), s i) is) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr))
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
Hlst: finite_trace_last is tr i = finite_trace_last (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last is tr i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
Hlst: finite_trace_last is tr i = finite_trace_last (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last is tr i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
final: state
Heqfinal: final = finite_trace_last is tr
Heqv_final: existing_descriptor (IM i) eqv_final (final i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors final ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
final: state
Heqfinal: final = finite_trace_last is tr
Heqv_final: existing_descriptor (IM i) eqv_final (final i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors final ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
final: state
Heqfinal: final = finite_trace_last is tr
Heqv_final: existing_descriptor (IM i) eqv_final (final i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_finalnot_equivocating_equivocator_descriptors IM final_descriptors finalmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
final: state
Heqfinal: final = finite_trace_last is tr
Heqv_final: existing_descriptor (IM i) eqv_final (final i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors final∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors final ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
final: state
Heqfinal: final = finite_trace_last is tr
Heqv_final: existing_descriptor (IM i) eqv_final (final i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_finalnot_equivocating_equivocator_descriptors IM final_descriptors finalmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
final: state
Heqfinal: final = finite_trace_last is tr
Heqv_final: existing_descriptor (IM i) eqv_final (final i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final
eqv: indexexisting_descriptor (IM eqv) (final_descriptors eqv) (final eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
final: state
Heqfinal: final = finite_trace_last is tr
Heqv_final: existing_descriptor (IM i) eqv_final (final i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
eqv: indexexisting_descriptor (IM eqv) (equivocator_descriptors_update (zero_descriptor IM) i eqv_final eqv) (final eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
final: state
Heqfinal: final = finite_trace_last is tr
Heqv_final: existing_descriptor (IM i) eqv_final (final i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
eqv: index
e: eqv = iexisting_descriptor (IM eqv) (equivocator_descriptors_update (zero_descriptor IM) i eqv_final eqv) (final eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
final: state
Heqfinal: final = finite_trace_last is tr
Heqv_final: existing_descriptor (IM i) eqv_final (final i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
eqv: index
n: eqv ≠ iexisting_descriptor (IM eqv) (equivocator_descriptors_update (zero_descriptor IM) i eqv_final eqv) (final eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
final: state
Heqfinal: final = finite_trace_last is tr
Heqv_final: existing_descriptor (IM i) eqv_final (final i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
eqv: index
e: eqv = iexisting_descriptor (IM eqv) (equivocator_descriptors_update (zero_descriptor IM) i eqv_final eqv) (final eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
eqv: index
li: vlabel (equivocator_IM eqv)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination eqv; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM eqv) tr
Hm: output = Some m
eqv_init: MachineDescriptor (IM eqv)
Heqv_init: proper_descriptor (IM eqv) eqv_init (is eqv)
eqv_final: MachineDescriptor (IM eqv)
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM eqv)) (is eqv) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM eqv) tr)
final: state
Heqfinal: final = finite_trace_last is tr
trXi: list (vtransition_item (IM eqv))
Hex: Exists (field_selector VLSM.output m) trXi
Hprojecti: equivocator_vlsm_trace_project (IM eqv) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM eqv) tr) eqv_final = Some (trXi, eqv_init)
Heqv_final: existing_descriptor (IM eqv) eqv_final (final eqv)existing_descriptor (IM eqv) (equivocator_descriptors_update (zero_descriptor IM) eqv eqv_final eqv) (final eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
eqv: index
li: vlabel (equivocator_IM eqv)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination eqv; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM eqv) tr
Hm: output = Some m
eqv_init: MachineDescriptor (IM eqv)
Heqv_init: proper_descriptor (IM eqv) eqv_init (is eqv)
eqv_final: MachineDescriptor (IM eqv)
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM eqv)) (is eqv) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM eqv) tr)
final: state
Heqfinal: final = finite_trace_last is tr
trXi: list (vtransition_item (IM eqv))
Hex: Exists (field_selector VLSM.output m) trXi
Hprojecti: equivocator_vlsm_trace_project (IM eqv) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM eqv) tr) eqv_final = Some (trXi, eqv_init)
Heqv_final: existing_descriptor (IM eqv) eqv_final (final eqv)existing_descriptor (IM eqv) (Common.equivocator_descriptors_update IM (zero_descriptor IM) eqv eqv_final eqv) (final eqv)assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
eqv: index
li: vlabel (equivocator_IM eqv)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination eqv; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM eqv) tr
Hm: output = Some m
eqv_init: MachineDescriptor (IM eqv)
Heqv_init: proper_descriptor (IM eqv) eqv_init (is eqv)
eqv_final: MachineDescriptor (IM eqv)
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM eqv)) (is eqv) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM eqv) tr)
final: state
Heqfinal: final = finite_trace_last is tr
trXi: list (vtransition_item (IM eqv))
Hex: Exists (field_selector VLSM.output m) trXi
Hprojecti: equivocator_vlsm_trace_project (IM eqv) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM eqv) tr) eqv_final = Some (trXi, eqv_init)
Heqv_final: existing_descriptor (IM eqv) eqv_final (final eqv)existing_descriptor (IM eqv) eqv_final (final eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
final: state
Heqfinal: final = finite_trace_last is tr
Heqv_final: existing_descriptor (IM i) eqv_final (final i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
eqv: index
n: eqv ≠ iexisting_descriptor (IM eqv) (equivocator_descriptors_update (zero_descriptor IM) i eqv_final eqv) (final eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
final: state
Heqfinal: final = finite_trace_last is tr
Heqv_final: existing_descriptor (IM i) eqv_final (final i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
eqv: index
n: eqv ≠ iexisting_descriptor (IM eqv) (Common.equivocator_descriptors_update IM (zero_descriptor IM) i eqv_final eqv) (final eqv)apply zero_descriptor_proper.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
final: state
Heqfinal: final = finite_trace_last is tr
Heqv_final: existing_descriptor (IM i) eqv_final (final i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
eqv: index
n: eqv ≠ iexisting_descriptor (IM eqv) (zero_descriptor IM eqv) (final eqv)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
final: state
Heqfinal: final = finite_trace_last is tr
Heqv_final: existing_descriptor (IM i) eqv_final (final i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors final∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors final ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
final: state
Heqfinal: final = finite_trace_last is tr
Heqv_final: existing_descriptor (IM i) eqv_final (final i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors final∃ (initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors final ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last is tr i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)∃ (initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last is tr i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)proper_equivocator_descriptors final_descriptors (finite_trace_last is tr)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last is tr i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Hfinal_descriptors_proper: proper_equivocator_descriptors final_descriptors (finite_trace_last is tr)∃ (initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last is tr i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)proper_equivocator_descriptors final_descriptors (finite_trace_last is tr)assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last is tr i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last is tr i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Hfinal_descriptors_proper: proper_equivocator_descriptors final_descriptors (finite_trace_last is tr)∃ (initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last is tr i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Hfinal_descriptors_proper: proper_equivocator_descriptors final_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject_tr: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)∃ (initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last is tr i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Hfinal_descriptors_proper: proper_equivocator_descriptors final_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject_tr: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last is tr i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Hfinal_descriptors_proper: proper_equivocator_descriptors final_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject_tr: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last is tr i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Hfinal_descriptors_proper: proper_equivocator_descriptors final_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject_tr: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)Exists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last is tr i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Hfinal_descriptors_proper: proper_equivocator_descriptors final_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject_tr: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hcommute: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) (final_descriptors i) = Some (trXi, eqv_init) → initial_descriptors i = eqv_init ∧ finite_trace_projection_list IM i trX = trXiExists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last is tr i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Hfinal_descriptors_proper: proper_equivocator_descriptors final_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject_tr: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hcommute: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) (final_descriptors i) = Some (trXi, eqv_init) → initial_descriptors i = eqv_init ∧ finite_trace_projection_list IM i trX = trXifinal_descriptors i = eqv_finalmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last is tr i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Hfinal_descriptors_proper: proper_equivocator_descriptors final_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject_tr: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hcommute: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) (final_descriptors i) = Some (trXi, eqv_init) → initial_descriptors i = eqv_init ∧ finite_trace_projection_list IM i trX = trXi
Hfinali: final_descriptors i = eqv_finalExists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last is tr i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Hfinal_descriptors_proper: proper_equivocator_descriptors final_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject_tr: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hcommute: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) (final_descriptors i) = Some (trXi, eqv_init) → initial_descriptors i = eqv_init ∧ finite_trace_projection_list IM i trX = trXifinal_descriptors i = eqv_finalapply equivocator_descriptors_update_eq.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
Hitem: {| l := li; input := input; destination := destination i; output := Some m |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last is tr i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector output m) trXi
Hfinal_descriptors_proper: proper_equivocator_descriptors (equivocator_descriptors_update (zero_descriptor IM) i eqv_final) (finite_trace_last is tr)
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM (equivocator_descriptors_update (zero_descriptor IM) i eqv_final) (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hcommute: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) (equivocator_descriptors_update (zero_descriptor IM) i eqv_final i) = Some (trXi, eqv_init) → initial_descriptors i = eqv_init ∧ finite_trace_projection_list IM i trX = trXi
Hproject_tr: equivocators_trace_project (equivocator_descriptors_update (zero_descriptor IM) i eqv_final) tr = Some (trX, initial_descriptors)equivocator_descriptors_update (zero_descriptor IM) i eqv_final i = eqv_finalmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last is tr i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Hfinal_descriptors_proper: proper_equivocator_descriptors final_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject_tr: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hcommute: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) (final_descriptors i) = Some (trXi, eqv_init) → initial_descriptors i = eqv_init ∧ finite_trace_projection_list IM i trX = trXi
Hfinali: final_descriptors i = eqv_finalExists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last is tr i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Hfinal_descriptors_proper: proper_equivocator_descriptors final_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject_tr: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hcommute: equivocator_vlsm_trace_project (IM i) (finite_trace_projection_list equivocator_IM i tr) eqv_final = Some (trXi, eqv_init) → initial_descriptors i = eqv_init ∧ finite_trace_projection_list IM i trX = trXi
Hfinali: final_descriptors i = eqv_finalExists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last is tr i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Hfinal_descriptors_proper: proper_equivocator_descriptors final_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject_tr: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hfinali: final_descriptors i = eqv_final
Hcommute: initial_descriptors i = eqv_init ∧ finite_trace_projection_list IM i trX = trXiExists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
i: index
li: vlabel (equivocator_IM i)
input: option message
destination: _composite_state equivocator_IM
output: option message
Hitem: {| l := li; input := input; destination := destination i; output := output |} ∈ VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr
Hm: output = Some m
Htri: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (is i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr)
eqv_final, eqv_init: MachineDescriptor (IM i)
Heqv_init: proper_descriptor (IM i) eqv_init (is i)
Heqv_final: existing_descriptor (IM i) eqv_final (finite_trace_last is tr i)
trXi: list (vtransition_item (IM i))
Hprojecti: equivocator_vlsm_trace_project (IM i) (VLSM_projection_trace_project (preloaded_component_projection equivocator_IM i) tr) eqv_final = Some (trXi, eqv_init)
Hex: Exists (field_selector VLSM.output m) trXi
final_descriptors: ∀ j : index, MachineDescriptor (IM j)
Heqfinal_descriptors: final_descriptors = equivocator_descriptors_update (zero_descriptor IM) i eqv_final
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Hfinal_descriptors_proper: proper_equivocator_descriptors final_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Hproject_tr: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hfinali: final_descriptors i = eqv_final
Hiniti: initial_descriptors i = eqv_init
Hcommute: finite_trace_projection_list IM i trX = trXiExists (field_selector VLSM.output m) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
m: message
i: index
trXi: list (vtransition_item (IM i))
Hex: Exists (field_selector output m) trXi
trX: list (composite_transition_item IM)
Hcommute: finite_trace_projection_list IM i trX = trXiExists (field_selector output m) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
m: message
i: index
trX: list (composite_transition_item IM)
Hex: Exists (field_selector output m) (finite_trace_projection_list IM i trX)Exists (field_selector output m) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
m: message
i: index
trX: list (composite_transition_item IM)
Hex: ∃ x : transition_item, x ∈ finite_trace_projection_list IM i trX ∧ field_selector output m xExists (field_selector output m) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
m: message
i: index
trX: list (composite_transition_item IM)
x: transition_item
Hx: x ∈ finite_trace_projection_list IM i trX
Hm: field_selector output m xExists (field_selector output m) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
m: message
i: index
trX: list (composite_transition_item IM)
x: transition_item
Hx: ∃ itemX : composite_transition_item IM, itemX ∈ trX ∧ output itemX = output x ∧ input itemX = input x ∧ destination itemX i = destination x ∧ (∃ Hl1 : i = projT1 (l itemX), eq_rect_r (λ n : index, vlabel (IM n)) (projT2 (l itemX)) Hl1 = l x)
Hm: field_selector output m xExists (field_selector output m) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
m: message
i: index
trX: list (composite_transition_item IM)
x: transition_item
itemX: composite_transition_item IM
HitemX: itemX ∈ trX
Houtput: output itemX = output x
Hm: field_selector output m xExists (field_selector output m) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
m: message
i: index
trX: list (composite_transition_item IM)
x: transition_item
itemX: composite_transition_item IM
HitemX: itemX ∈ trX
Houtput: output itemX = output x
Hm: field_selector output m x∃ x : transition_item, x ∈ trX ∧ field_selector output m xmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
m: message
i: index
trX: list (composite_transition_item IM)
x: transition_item
itemX: composite_transition_item IM
HitemX: itemX ∈ trX
Houtput: output itemX = output x
Hm: field_selector output m xitemX ∈ trX ∧ field_selector output m itemXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
m: message
i: index
trX: list (composite_transition_item IM)
x: transition_item
itemX: composite_transition_item IM
HitemX: itemX ∈ trX
Houtput: output itemX = output x
Hm: field_selector output m xfield_selector output m itemXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
m: message
i: index
trX: list (composite_transition_item IM)
x: transition_item
itemX: composite_transition_item IM
HitemX: itemX ∈ trX
Houtput: output itemX = output x
Hm: output x = Some moutput itemX = Some massumption. Qed.message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
m: message
i: index
trX: list (composite_transition_item IM)
x: transition_item
itemX: composite_transition_item IM
HitemX: itemX ∈ trX
Houtput: output itemX = output x
Hm: output x = Some moutput x = Some mmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: messageExists (field_selector output m) tr ↔ (∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector output m) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: messageExists (field_selector output m) tr ↔ (∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector output m) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message(∃ (final_descriptors initial_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector output m) trX) → Exists (field_selector output m) trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
final_descriptors, initial_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Hpr_tr: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hex: Exists (field_selector output m) trXExists (field_selector output m) trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
final_descriptors, initial_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Hpr_tr: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hex: ∃ x : transition_item, x ∈ trX ∧ field_selector output m xExists (field_selector output m) trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
final_descriptors, initial_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Hpr_tr: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
itemX: transition_item
HitemX: itemX ∈ trX
Hm: field_selector output m itemXExists (field_selector output m) trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
final_descriptors, initial_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Hpr_tr: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
itemX: transition_item
HitemX: ∃ l1 l2 : list transition_item, trX = l1 ++ itemX :: l2
Hm: field_selector output m itemXExists (field_selector output m) trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
final_descriptors, initial_descriptors: equivocator_descriptors
trX: list (composite_transition_item IM)
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Hpr_tr: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
itemX: transition_item
preX, sufX: list transition_item
Heq_trX: trX = preX ++ itemX :: sufX
Hm: field_selector output m itemXExists (field_selector output m) trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
final_descriptors, initial_descriptors: equivocator_descriptors
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
itemX: transition_item
preX, sufX: list transition_item
Hpr_tr: equivocators_trace_project final_descriptors tr = Some (preX ++ itemX :: sufX, initial_descriptors)
Hm: field_selector output m itemXExists (field_selector output m) trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
final_descriptors, initial_descriptors: equivocator_descriptors
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
itemX: transition_item
preX, sufX: list transition_item
Hpr_tr: ∃ (pre suf : list (composite_transition_item equivocator_IM)) (item : composite_transition_item equivocator_IM) (item_descriptors pre_descriptors : equivocator_descriptors), equivocators_trace_project final_descriptors suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors) ∧ equivocators_trace_project pre_descriptors pre = Some (preX, initial_descriptors) ∧ tr = pre ++ [item] ++ suf
Hm: field_selector output m itemXExists (field_selector output m) trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is tr
m: message
final_descriptors, initial_descriptors: equivocator_descriptors
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
itemX: transition_item
preX, sufX: list transition_item
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Heqtr: tr = pre ++ [item] ++ suf
Hm: field_selector output m itemXExists (field_selector output m) trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (pre ++ [item] ++ suf)
m: message
final_descriptors, initial_descriptors: equivocator_descriptors
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
itemX: transition_item
preX, sufX: list transition_item
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hm: field_selector output m itemXExists (field_selector output m) (pre ++ [item] ++ suf)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (pre ++ [item] ++ suf)
m: message
final_descriptors, initial_descriptors: equivocator_descriptors
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
itemX: transition_item
preX, sufX: list transition_item
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hm: field_selector output m itemXExists (field_selector output m) pre ∨ Exists (field_selector output m) [item] ∨ Exists (field_selector output m) sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (pre ++ [item] ++ suf)
m: message
final_descriptors, initial_descriptors: equivocator_descriptors
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
itemX: transition_item
preX, sufX: list transition_item
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hm: field_selector output m itemXExists (field_selector output m) [item] ∨ Exists (field_selector output m) sufmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (pre ++ [item] ++ suf)
m: message
final_descriptors, initial_descriptors: equivocator_descriptors
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
itemX: transition_item
preX, sufX: list transition_item
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hm: field_selector output m itemXExists (field_selector output m) [item]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (pre ++ [item] ++ suf)
m: message
final_descriptors, initial_descriptors: equivocator_descriptors
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
itemX: transition_item
preX, sufX: list transition_item
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_item: equivocators_transition_item_project item_descriptors item = Some (Some itemX, pre_descriptors)
Hm: field_selector output m itemXfield_selector output m itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (pre ++ [item] ++ suf)
m: message
final_descriptors, initial_descriptors: equivocator_descriptors
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
itemX: transition_item
preX, sufX: list transition_item
item_descriptors, pre_descriptors: equivocator_descriptors
Hpr_item: (∃ Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) = l itemX) ∧ input item = input itemX ∧ output item = output itemX ∧ equivocators_state_project item_descriptors (destination item) = destination itemX
Hm: field_selector output m itemXfield_selector output m itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (pre ++ [item] ++ suf)
m: message
final_descriptors, initial_descriptors: equivocator_descriptors
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
itemX: transition_item
preX, sufX: list transition_item
item_descriptors, pre_descriptors: equivocator_descriptors
Heqoutput: output item = output itemX
Hm: field_selector output m itemXfield_selector output m itemcongruence. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: composite_state equivocator_IM
pre, suf: list (composite_transition_item equivocator_IM)
item: composite_transition_item equivocator_IM
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) is (pre ++ item :: suf)
m: message
final_descriptors, initial_descriptors: equivocator_descriptors
Hfinal_descriptors: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is (pre ++ item :: suf))
itemX: transition_item
preX, sufX: list transition_item
item_descriptors, pre_descriptors: equivocator_descriptors
Heqoutput: output item = output itemX
Hm: output itemX = Some moutput item = Some m
Projecting a pre-loaded valid trace of the composition of equivocators
using proper_equivocator_descriptors one obtains a pre-loaded valid trace
of the free composition of nodes.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is, final_state: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_init_to PreFreeE is final_state tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors final_state in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is, final_state: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_init_to PreFreeE is final_state tr
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors final_state in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is, final_state: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Htr: finite_valid_trace_init_to PreFreeE is final_state tr∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors final_state → ∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors final_state in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)∀ final_state : vstate equivocators_no_equivocations_vlsm, finite_valid_trace_init_to PreFreeE is final_state tr → ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors final_state → ∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors final_state in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is, final_state: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_init_to PreFreeE is final_state []
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors final_state in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors [] = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ final_state : vstate equivocators_no_equivocations_vlsm, finite_valid_trace_init_to PreFreeE is final_state tr → ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors final_state → ∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors final_state in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)
final_state: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_init_to PreFreeE is final_state (tr ++ [x])
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors final_state in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is, final_state: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_init_to PreFreeE is final_state []
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors final_state in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors [] = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is, final_state: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_init_to PreFreeE is final_state []
Hfinal_state_eq: finite_trace_last is [] = final_state
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors final_state in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors [] = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_init_to PreFreeE is (finite_trace_last is []) []
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (finite_trace_last is [])∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors (finite_trace_last is []) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors [] = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_init_to PreFreeE is (finite_trace_last is []) []
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (finite_trace_last is [])proper_equivocator_descriptors final_descriptors is ∧ (let isX := equivocators_state_project final_descriptors is in let final_stateX := equivocators_state_project final_descriptors (finite_trace_last is []) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors [] = Some (trX, final_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_init_to PreFreeE is (finite_trace_last is []) []
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (finite_trace_last is [])let isX := equivocators_state_project final_descriptors is in let final_stateX := equivocators_state_project final_descriptors (finite_trace_last is []) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors [] = Some (trX, final_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_init_to PreFreeE is (finite_trace_last is []) []
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (finite_trace_last is [])equivocators_trace_project final_descriptors [] = Some ([], final_descriptors) ∧ finite_valid_trace_init_to PreFree (equivocators_state_project final_descriptors is) (equivocators_state_project final_descriptors (finite_trace_last is [])) []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_init_to PreFreeE is (finite_trace_last is []) []
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (finite_trace_last is [])finite_valid_trace_init_to PreFree (equivocators_state_project final_descriptors is) (equivocators_state_project final_descriptors (finite_trace_last is [])) []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_init_to PreFreeE is (finite_trace_last is []) []
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (finite_trace_last is [])vinitial_state_prop (free_composite_vlsm IM) (equivocators_state_project final_descriptors is) → finite_valid_trace_init_to PreFree (equivocators_state_project final_descriptors is) (equivocators_state_project final_descriptors (finite_trace_last is [])) []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_init_to PreFreeE is (finite_trace_last is []) []
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (finite_trace_last is [])vinitial_state_prop (free_composite_vlsm IM) (equivocators_state_project final_descriptors is)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_init_to PreFreeE is (finite_trace_last is []) []
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (finite_trace_last is [])vinitial_state_prop (free_composite_vlsm IM) (equivocators_state_project final_descriptors is) → finite_valid_trace_init_to PreFree (equivocators_state_project final_descriptors is) (equivocators_state_project final_descriptors (finite_trace_last is [])) []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_init_to PreFreeE is (finite_trace_last is []) []
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (finite_trace_last is [])
Hinit: vinitial_state_prop (free_composite_vlsm IM) (equivocators_state_project final_descriptors is)finite_valid_trace_init_to PreFree (equivocators_state_project final_descriptors is) (equivocators_state_project final_descriptors (finite_trace_last is [])) []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_init_to PreFreeE is (finite_trace_last is []) []
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (finite_trace_last is [])
Hinit: vinitial_state_prop (free_composite_vlsm IM) (equivocators_state_project final_descriptors is)finite_valid_trace_from_to PreFree (equivocators_state_project final_descriptors is) (equivocators_state_project final_descriptors (finite_trace_last is [])) []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_init_to PreFreeE is (finite_trace_last is []) []
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (finite_trace_last is [])
Hinit: vinitial_state_prop (free_composite_vlsm IM) (equivocators_state_project final_descriptors is)valid_state_prop PreFree (equivocators_state_project final_descriptors (finite_trace_last is []))assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_init_to PreFreeE is (finite_trace_last is []) []
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (finite_trace_last is [])
Hinit: vinitial_state_prop (free_composite_vlsm IM) (equivocators_state_project final_descriptors is)initial_state_prop (equivocators_state_project final_descriptors (finite_trace_last is []))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_init_to PreFreeE is (finite_trace_last is []) []
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (finite_trace_last is [])vinitial_state_prop (free_composite_vlsm IM) (equivocators_state_project final_descriptors is)apply Htr.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_init_to PreFreeE is (finite_trace_last is []) []
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (finite_trace_last is [])vinitial_state_prop (free_composite_vlsm (Common.equivocator_IM IM)) ismessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ final_state : vstate equivocators_no_equivocations_vlsm, finite_valid_trace_init_to PreFreeE is final_state tr → ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors final_state → ∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors final_state in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)
final_state: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_init_to PreFreeE is final_state (tr ++ [x])
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors final_state in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ final_state : vstate equivocators_no_equivocations_vlsm, finite_valid_trace_init_to PreFreeE is final_state tr → ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors final_state → ∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors final_state in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)
final_state: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_from_to PreFreeE is final_state (tr ++ [x])
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors final_state in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ final_state : vstate equivocators_no_equivocations_vlsm, finite_valid_trace_init_to PreFreeE is final_state tr → ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors final_state → ∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors final_state in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)
final_state: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr ∧ finite_valid_trace_from_to PreFreeE (finite_trace_last is tr) final_state [x]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors final_state in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ final_state : vstate equivocators_no_equivocations_vlsm, finite_valid_trace_init_to PreFreeE is final_state tr → ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors final_state → ∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors final_state in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)
final_state: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
Hx: finite_valid_trace_from_to PreFreeE (finite_trace_last is tr) final_state [x]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors final_state in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors (finite_trace_last is tr) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)
final_state: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
Hx: finite_valid_trace_from_to PreFreeE (finite_trace_last is tr) final_state [x]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors final_state in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors (finite_trace_last is tr) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)
final_state: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
Hx: finite_valid_trace_from_to PreFreeE (finite_trace_last is tr) final_state [x]
Hfinal_state_eq: finite_trace_last (finite_trace_last is tr) [x] = final_state
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors final_state in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors (finite_trace_last is tr) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)
final_state: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
Hx: finite_valid_trace_from_to PreFreeE (finite_trace_last is tr) final_state [x]
Hfinal_state_eq: finite_trace_last (finite_trace_last is tr) ([] ++ [x]) = final_state
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors final_state in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors (finite_trace_last is tr) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)
final_state: vstate equivocators_no_equivocations_vlsm
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
Hx: finite_valid_trace_from_to PreFreeE (finite_trace_last is tr) final_state [x]
Hfinal_state_eq: destination x = final_state
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors final_state∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors final_state in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors (finite_trace_last is tr) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
Hx: finite_valid_trace_from_to PreFreeE (finite_trace_last is tr) (destination x) [x]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination x)∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors (destination x) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors (finite_trace_last is tr) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
Hx: finite_valid_trace_from_to PreFreeE (finite_trace_last is tr) (destination x) [x]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination x)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hpr_x: equivocators_transition_item_project final_descriptors x = Some (oitem, final_descriptors')
Hchar1: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l x))) (projT2 (l x)), existT (projT1 (l x)) (existing_equivocator_label_extract (IM (projT1 (l x))) (projT2 (l x)) Hex) = l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project final_descriptors (destination x) = destination itemx ∧ final_descriptors' (projT1 (l x)) = equivocator_label_descriptor (projT2 (l x)) | None => True end
Hchar2: ∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l x) (s, input x) → composite_transition equivocator_IM (l x) (s, input x) = (destination x, output x) → proper_equivocator_descriptors final_descriptors' s ∧ final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (l x)) (final_descriptors' (projT1 (l x))) ∧ s = state_update equivocator_IM (destination x) (projT1 (l x)) (s (projT1 (l x))) ∧ previous_state_descriptor_prop (IM (projT1 (l x))) (final_descriptors (projT1 (l x))) (s (projT1 (l x))) (final_descriptors' (projT1 (l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination x) = equivocators_state_project final_descriptors' s end∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors (destination x) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors (finite_trace_last is tr) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
Hx: finite_valid_trace_from_to PreFreeE (finite_trace_last is tr) (destination x) [x]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination x)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hpr_x: equivocators_transition_item_project final_descriptors x = Some (oitem, final_descriptors')
Hchar1: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (l x))) (projT2 (l x)), existT (projT1 (l x)) (existing_equivocator_label_extract (IM (projT1 (l x))) (projT2 (l x)) Hex) = l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project final_descriptors (destination x) = destination itemx ∧ final_descriptors' (projT1 (l x)) = equivocator_label_descriptor (projT2 (l x)) | None => True end
Hchar2: ∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (l x) (s, input x) → composite_transition equivocator_IM (l x) (s, input x) = (destination x, output x) → proper_equivocator_descriptors final_descriptors' s ∧ final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (l x)) (final_descriptors' (projT1 (l x))) ∧ s = state_update equivocator_IM (destination x) (projT1 (l x)) (s (projT1 (l x))) ∧ previous_state_descriptor_prop (IM (projT1 (l x))) (final_descriptors (projT1 (l x))) (s (projT1 (l x))) (final_descriptors' (projT1 (l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination x) = equivocators_state_project final_descriptors' s end
Hpr_app: ∀ (ieqv_descriptors eqv_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors (tr ++ [x]) = Some (trX, ieqv_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project eqv_descriptors [x] = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX)∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors (destination x) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
x: composite_transition_item equivocator_IM
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors (finite_trace_last is tr) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
Hx: finite_valid_trace_from_to PreFreeE (finite_trace_last is tr) (destination x) [x]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination x)
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hpr_x: equivocators_transition_item_project final_descriptors x = Some (oitem, final_descriptors')
Hchar1: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l x))) (projT2 (VLSM.l x)), existT (projT1 (VLSM.l x)) (existing_equivocator_label_extract (IM (projT1 (VLSM.l x))) (projT2 (VLSM.l x)) Hex) = VLSM.l itemx) ∧ input x = input itemx ∧ output x = output itemx ∧ equivocators_state_project final_descriptors (destination x) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l x)) = equivocator_label_descriptor (projT2 (VLSM.l x)) | None => True end
Hchar2: ∀ s : composite_state equivocator_IM, composite_valid equivocator_IM (VLSM.l x) (s, input x) → composite_transition equivocator_IM (VLSM.l x) (s, input x) = (destination x, output x) → proper_equivocator_descriptors final_descriptors' s ∧ final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l x)) (final_descriptors' (projT1 (VLSM.l x))) ∧ s = state_update equivocator_IM (destination x) (projT1 (VLSM.l x)) (s (projT1 (VLSM.l x))) ∧ previous_state_descriptor_prop (IM (projT1 (VLSM.l x))) (final_descriptors (projT1 (VLSM.l x))) (s (projT1 (VLSM.l x))) (final_descriptors' (projT1 (VLSM.l x))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' s → composite_valid IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination x) = equivocators_state_project final_descriptors' s end
Hpr_app: ∀ (ieqv_descriptors eqv_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors (tr ++ [x]) = Some (trX, ieqv_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project eqv_descriptors [x] = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX)
s, f: state
tl: list transition_item
s': state
iom, oom: option message
l: label
Htl: finite_valid_trace_from_to PreFreeE s (destination {| l := l; input := iom; destination := s; output := oom |}) []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)
H1: s' = finite_trace_last is tr
H2: f = destination x
H4: {| l := l; input := iom; destination := s; output := oom |} = x
H5: tl = []∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors (finite_trace_last is tr) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: state
iom, oom: option message
l: label
Hx: finite_valid_trace_from_to PreFreeE (finite_trace_last is tr) (destination {| l := l; input := iom; destination := s; output := oom |}) [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hpr_app: ∀ (ieqv_descriptors eqv_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, ieqv_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project eqv_descriptors [ {| l := l; input := iom; destination := s; output := oom |}] = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX)
Hchar2: ∀ s0 : composite_state equivocator_IM, composite_valid equivocator_IM (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) → composite_transition equivocator_IM (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → proper_equivocator_descriptors final_descriptors' s0 ∧ final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ s0 = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (s0 (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (s0 (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' s0 → composite_valid IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project final_descriptors' s0 end
Hchar1: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htl: finite_valid_trace_from_to PreFreeE s (destination {| l := l; input := iom; destination := s; output := oom |}) []
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors (finite_trace_last is tr) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: state
iom, oom: option message
l: label
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hpr_app: ∀ (ieqv_descriptors eqv_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, ieqv_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project eqv_descriptors [ {| l := l; input := iom; destination := s; output := oom |}] = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX)
Hchar2: ∀ s0 : composite_state equivocator_IM, composite_valid equivocator_IM (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) → composite_transition equivocator_IM (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → proper_equivocator_descriptors final_descriptors' s0 ∧ final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ s0 = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (s0 (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (s0 (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' s0 → composite_valid IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project final_descriptors' s0 end
Hchar1: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Ht: input_valid_transition PreFreeE l (finite_trace_last is tr, iom) (s, oom)∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors (finite_trace_last is tr) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: state
iom, oom: option message
l: label
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hpr_app: ∀ (ieqv_descriptors eqv_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, ieqv_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project eqv_descriptors [ {| l := l; input := iom; destination := s; output := oom |}] = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX)
Hchar2: ∀ s0 : composite_state equivocator_IM, composite_valid equivocator_IM (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) → composite_transition equivocator_IM (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → proper_equivocator_descriptors final_descriptors' s0 ∧ final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ s0 = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (s0 (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (s0 (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' s0 → composite_valid IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project final_descriptors' s0 end
Hchar1: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hvx: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: transition l (finite_trace_last is tr, iom) = (s, oom)∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors (finite_trace_last is tr) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: state
iom, oom: option message
l: label
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hpr_app: ∀ (ieqv_descriptors eqv_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, ieqv_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project eqv_descriptors [ {| l := l; input := iom; destination := s; output := oom |}] = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX)
Hchar2: proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ finite_trace_last is tr = state_update equivocator_IM (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → composite_valid IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hchar1: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hvx: composite_valid equivocator_IM l (finite_trace_last is tr, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: transition l (finite_trace_last is tr, iom) = (s, oom)∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (let isX := equivocators_state_project initial_descriptors is in let final_stateX := equivocators_state_project final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) in ∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree isX final_stateX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors (finite_trace_last is tr)) trX)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hpr_app: ∀ (ieqv_descriptors eqv_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, ieqv_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project eqv_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX)
Hchar2: proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr) ∧ final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l)) ∧ finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l)) ∧ previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l)) ∧ match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hchar1: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors s) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
IHtr: ∀ final_descriptors : equivocator_descriptors, proper_equivocator_descriptors final_descriptors (finite_trace_last is tr) → ∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors (finite_trace_last is tr)) trX)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors
Hpr_app: ∀ (ieqv_descriptors eqv_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, ieqv_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project eqv_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hchar1: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors s) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors': equivocator_descriptors
IHtr: ∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
oitem: option (composite_transition_item IM)
Hpr_app: ∀ (ieqv_descriptors eqv_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, ieqv_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project eqv_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hchar1: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors s) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
oitem: option (composite_transition_item IM)
Hpr_app: ∀ (ieqv_descriptors eqv_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, ieqv_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project eqv_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hchar1: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)∃ initial_descriptors : equivocator_descriptors, proper_equivocator_descriptors initial_descriptors is ∧ (∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors s) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
oitem: option (composite_transition_item IM)
Hpr_app: ∀ (ieqv_descriptors eqv_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, ieqv_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project eqv_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hchar1: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)proper_equivocator_descriptors initial_descriptors is ∧ (∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors s) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
oitem: option (composite_transition_item IM)
Hpr_app: ∀ (ieqv_descriptors eqv_descriptors : equivocator_descriptors) (trX : list (composite_transition_item IM)), equivocators_trace_project eqv_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, ieqv_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project eqv_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, ieqv_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hchar1: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors s) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
oitem: option (composite_transition_item IM)
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: match oitem with | Some itemx => ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project final_descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr) end
Hchar1: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors s) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l item in vvalid (IM i) li (sx i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (sx i, input item) in (state_update IM sx i si', om')) = (destination item, output item)
Hchar1: (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item) ∧ iom = input item ∧ oom = output item ∧ equivocators_state_project final_descriptors s = destination item ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors s) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: equivocators_state_project final_descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr)
Hchar1: True
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors s) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l item in vvalid (IM i) li (sx i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (sx i, input item) in (state_update IM sx i si', om')) = (destination item, output item)
Hchar1: (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item) ∧ iom = input item ∧ oom = output item ∧ equivocators_state_project final_descriptors s = destination item ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors s) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l item in vvalid (IM i) li (sx i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (sx i, input item) in (state_update IM sx i si', om')) = (destination item, output item)
Hchar1: (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item) ∧ iom = input item ∧ oom = output item ∧ equivocators_state_project final_descriptors s = destination item ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX ++ [item], initial_descriptors) ∧ finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors s) (trX ++ [item])message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: initial_state_prop (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l item in vvalid (IM i) li (sx i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (sx i, input item) in (state_update IM sx i si', om')) = (destination item, output item)
Hchar1: (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item) ∧ iom = input item ∧ oom = output item ∧ equivocators_state_project final_descriptors s = destination item ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX ++ [item], initial_descriptors) ∧ finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors s) (trX ++ [item])message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: initial_state_prop (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l item in vvalid (IM i) li (sx i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (sx i, input item) in (state_update IM sx i si', om')) = (destination item, output item)
Hchar1: (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item) ∧ iom = input item ∧ oom = output item ∧ equivocators_state_project final_descriptors s = destination item ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX ++ [item], initial_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: initial_state_prop (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l item in vvalid (IM i) li (sx i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (sx i, input item) in (state_update IM sx i si', om')) = (destination item, output item)
Hchar1: (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item) ∧ iom = input item ∧ oom = output item ∧ equivocators_state_project final_descriptors s = destination item ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors s) (trX ++ [item])message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: initial_state_prop (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l item in vvalid (IM i) li (sx i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (sx i, input item) in (state_update IM sx i si', om')) = (destination item, output item)
Hchar1: (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item) ∧ iom = input item ∧ oom = output item ∧ equivocators_state_project final_descriptors s = destination item ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX ++ [item], initial_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: initial_state_prop (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l item in vvalid (IM i) li (sx i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (sx i, input item) in (state_update IM sx i si', om')) = (destination item, output item)
Hchar1: (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item) ∧ iom = input item ∧ oom = output item ∧ equivocators_state_project final_descriptors s = destination item ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX ++ [item] = preX ++ sufXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: initial_state_prop (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l item in vvalid (IM i) li (sx i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (sx i, input item) in (state_update IM sx i si', om')) = (destination item, output item)
Hchar1: (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item) ∧ iom = input item ∧ oom = output item ∧ equivocators_state_project final_descriptors s = destination item ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([item], final_descriptors') ∧ equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors) ∧ trX ++ [item] = trX ++ [item]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: initial_state_prop (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l item in vvalid (IM i) li (sx i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (sx i, input item) in (state_update IM sx i si', om')) = (destination item, output item)
Hchar1: (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item) ∧ iom = input item ∧ oom = output item ∧ equivocators_state_project final_descriptors s = destination item ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)Some ([item], final_descriptors') = Some ([item], final_descriptors') ∧ equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors) ∧ trX ++ [item] = trX ++ [item]assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: initial_state_prop (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l item in vvalid (IM i) li (sx i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (sx i, input item) in (state_update IM sx i si', om')) = (destination item, output item)
Hchar1: (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item) ∧ iom = input item ∧ oom = output item ∧ equivocators_state_project final_descriptors s = destination item ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: initial_state_prop (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l item in vvalid (IM i) li (sx i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (sx i, input item) in (state_update IM sx i si', om')) = (destination item, output item)
Hchar1: (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item) ∧ iom = input item ∧ oom = output item ∧ equivocators_state_project final_descriptors s = destination item ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors s) (trX ++ [item])message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: initial_state_prop (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: ∀ sx : composite_state IM, sx = equivocators_state_project final_descriptors' (finite_trace_last is tr) → (let (i, li) := VLSM.l item in vvalid (IM i) li (sx i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (sx i, input item) in (state_update IM sx i si', om')) = (destination item, output item)
Hchar1: (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item) ∧ iom = input item ∧ oom = output item ∧ equivocators_state_project final_descriptors s = destination item ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)finite_valid_trace_from_to PreFree (equivocators_state_project final_descriptors' (finite_trace_last is tr)) (equivocators_state_project final_descriptors s) [item]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: initial_state_prop (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: (let (i, li) := VLSM.l item in vvalid (IM i) li (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, input item) in (state_update IM (equivocators_state_project final_descriptors' (finite_trace_last is tr)) i si', om')) = (destination item, output item)
Hchar1: (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item) ∧ iom = input item ∧ oom = output item ∧ equivocators_state_project final_descriptors s = destination item ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)finite_valid_trace_from_to PreFree (equivocators_state_project final_descriptors' (finite_trace_last is tr)) (equivocators_state_project final_descriptors s) [item]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: initial_state_prop (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
l0: label
input: option message
destination: state
output: option message
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: (let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in vvalid (IM i) li (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, VLSM.input {| l := l0; input := input; destination := destination; output := output |})) ∧ (let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in let (si', om') := vtransition (IM i) li (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, VLSM.input {| l := l0; input := input; destination := destination; output := output |}) in (state_update IM (equivocators_state_project final_descriptors' (finite_trace_last is tr)) i si', om')) = (VLSM.destination {| l := l0; input := input; destination := destination; output := output |}, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hchar1: (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l {| l := l0; input := input; destination := destination; output := output |}) ∧ iom = VLSM.input {| l := l0; input := input; destination := destination; output := output |} ∧ oom = VLSM.output {| l := l0; input := input; destination := destination; output := output |} ∧ equivocators_state_project final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |} ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)finite_valid_trace_from_to PreFree (equivocators_state_project final_descriptors' (finite_trace_last is tr)) (equivocators_state_project final_descriptors s) [{| l := l0; input := input; destination := destination; output := output |}]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: initial_state_prop (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
ix: index
lix: vlabel (IM ix)
input: option message
destination: state
output: option message
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: (let (i, li) := VLSM.l {| l := existT ix lix; input := input; destination := destination; output := output |} in vvalid (IM i) li (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, VLSM.input {| l := existT ix lix; input := input; destination := destination; output := output |})) ∧ (let (i, li) := VLSM.l {| l := existT ix lix; input := input; destination := destination; output := output |} in let (si', om') := vtransition (IM i) li (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, VLSM.input {| l := existT ix lix; input := input; destination := destination; output := output |}) in (state_update IM (equivocators_state_project final_descriptors' (finite_trace_last is tr)) i si', om')) = (VLSM.destination {| l := existT ix lix; input := input; destination := destination; output := output |}, VLSM.output {| l := existT ix lix; input := input; destination := destination; output := output |})
Hchar1: (∃ Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l {| l := existT ix lix; input := input; destination := destination; output := output |}) ∧ iom = VLSM.input {| l := existT ix lix; input := input; destination := destination; output := output |} ∧ oom = VLSM.output {| l := existT ix lix; input := input; destination := destination; output := output |} ∧ equivocators_state_project final_descriptors s = VLSM.destination {| l := existT ix lix; input := input; destination := destination; output := output |} ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := existT ix lix; input := input; destination := destination; output := output |}, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)finite_valid_trace_from_to PreFree (equivocators_state_project final_descriptors' (finite_trace_last is tr)) (equivocators_state_project final_descriptors s) [{| l := existT ix lix; input := input; destination := destination; output := output |}]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: initial_state_prop (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
ix: index
lix: vlabel (IM ix)
input: option message
destination: state
output: option message
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := existT i li; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 (existT i li)) (final_descriptors' (projT1 (existT i li)))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 (existT i li)) (finite_trace_last is tr (projT1 (existT i li)))
Hex_new: previous_state_descriptor_prop (IM (projT1 (existT i li))) (final_descriptors (projT1 (existT i li))) (finite_trace_last is tr (projT1 (existT i li))) (final_descriptors' (projT1 (existT i li)))
Hchar2: (let (i, li) := l {| l := existT ix lix; input := input; destination := destination; output := output |} in vvalid (IM i) li (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, VLSM.input {| l := existT ix lix; input := input; destination := destination; output := output |})) ∧ (let (i, li) := l {| l := existT ix lix; input := input; destination := destination; output := output |} in let (si', om') := vtransition (IM i) li (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, VLSM.input {| l := existT ix lix; input := input; destination := destination; output := output |}) in (state_update IM (equivocators_state_project final_descriptors' (finite_trace_last is tr)) i si', om')) = (VLSM.destination {| l := existT ix lix; input := input; destination := destination; output := output |}, VLSM.output {| l := existT ix lix; input := input; destination := destination; output := output |})
Hchar1: (∃ Hex : existing_equivocator_label (IM (projT1 (existT i li))) (projT2 (existT i li)), existT (projT1 (existT i li)) (existing_equivocator_label_extract (IM (projT1 (existT i li))) (projT2 (existT i li)) Hex) = l {| l := existT ix lix; input := input; destination := destination; output := output |}) ∧ iom = VLSM.input {| l := existT ix lix; input := input; destination := destination; output := output |} ∧ oom = VLSM.output {| l := existT ix lix; input := input; destination := destination; output := output |} ∧ equivocators_state_project final_descriptors s = VLSM.destination {| l := existT ix lix; input := input; destination := destination; output := output |} ∧ final_descriptors' (projT1 (existT i li)) = equivocator_label_descriptor (projT2 (existT i li))
Hpr_x: equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} = Some (Some {| l := existT ix lix; input := input; destination := destination; output := output |}, final_descriptors')
Hvx: vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM (existT i li) (finite_trace_last is tr, iom)
Htx: vtransition FreeE (existT i li) (finite_trace_last is tr, iom) = (s, oom)finite_valid_trace_from_to PreFree (equivocators_state_project final_descriptors' (finite_trace_last is tr)) (equivocators_state_project final_descriptors s) [{| l := existT ix lix; input := input; destination := destination; output := output |}]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: vinitial_state_prop Free (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
ix: index
lix: vlabel (IM ix)
input: option message
destination: _composite_state IM
output: option message
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := existT i li; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors i (final_descriptors' i)
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s i (finite_trace_last is tr i)
Hex_new: previous_state_descriptor_prop (IM i) (final_descriptors i) (finite_trace_last is tr i) (final_descriptors' i)
Hchar2: vvalid (IM ix) lix (equivocators_state_project final_descriptors' (finite_trace_last is tr) ix, input) ∧ (let (si', om') := vtransition (IM ix) lix (equivocators_state_project final_descriptors' (finite_trace_last is tr) ix, input) in (state_update IM (equivocators_state_project final_descriptors' (finite_trace_last is tr)) ix si', om')) = (destination, output)
Hchar1: (∃ Hex : existing_equivocator_label (IM i) li, existT i (existing_equivocator_label_extract (IM i) li Hex) = existT ix lix) ∧ iom = input ∧ oom = output ∧ equivocators_state_project final_descriptors s = destination ∧ final_descriptors' i = equivocator_label_descriptor li
Hpr_x: equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} = Some (Some {| l := existT ix lix; input := input; destination := destination; output := output |}, final_descriptors')
Hvx: vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM (existT i li) (finite_trace_last is tr, iom)
Htx: vtransition FreeE (existT i li) (finite_trace_last is tr, iom) = (s, oom)finite_valid_trace_from_to PreFree (equivocators_state_project final_descriptors' (finite_trace_last is tr)) (equivocators_state_project final_descriptors s) [{| l := existT ix lix; input := input; destination := destination; output := output |}]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: vinitial_state_prop Free (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
ix: index
lix: vlabel (IM ix)
input: option message
destination: _composite_state IM
output: option message
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := existT i li; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors i (final_descriptors' i)
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s i (finite_trace_last is tr i)
Hex_new: previous_state_descriptor_prop (IM i) (final_descriptors i) (finite_trace_last is tr i) (final_descriptors' i)
Hchar2: vvalid (IM ix) lix (equivocators_state_project final_descriptors' (finite_trace_last is tr) ix, input) ∧ (let (si', om') := vtransition (IM ix) lix (equivocators_state_project final_descriptors' (finite_trace_last is tr) ix, input) in (state_update IM (equivocators_state_project final_descriptors' (finite_trace_last is tr)) ix si', om')) = (destination, output)
Hex: existing_equivocator_label (IM i) li
Heq_l: existT i (existing_equivocator_label_extract (IM i) li Hex) = existT ix lix
Heq_input: iom = input
Heq_output: oom = output
Hpr_s: equivocators_state_project final_descriptors s = destination
Heq_descli: final_descriptors' i = equivocator_label_descriptor li
Hpr_x: equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} = Some (Some {| l := existT ix lix; input := input; destination := destination; output := output |}, final_descriptors')
Hvx: vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM (existT i li) (finite_trace_last is tr, iom)
Htx: vtransition FreeE (existT i li) (finite_trace_last is tr, iom) = (s, oom)finite_valid_trace_from_to PreFree (equivocators_state_project final_descriptors' (finite_trace_last is tr)) (equivocators_state_project final_descriptors s) [{| l := existT ix lix; input := input; destination := destination; output := output |}]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: vinitial_state_prop Free (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
ix: index
lix: vlabel (IM ix)
input: option message
destination: _composite_state IM
output: option message
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := existT i li; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors i (final_descriptors' i)
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s i (finite_trace_last is tr i)
Hex_new: previous_state_descriptor_prop (IM i) (final_descriptors i) (finite_trace_last is tr i) (final_descriptors' i)
Hchar2: vvalid (IM ix) lix (equivocators_state_project final_descriptors' (finite_trace_last is tr) ix, input) ∧ (let (si', om') := vtransition (IM ix) lix (equivocators_state_project final_descriptors' (finite_trace_last is tr) ix, input) in (state_update IM (equivocators_state_project final_descriptors' (finite_trace_last is tr)) ix si', om')) = (destination, output)
Hex: existing_equivocator_label (IM i) li
Heq_l: existT i (existing_equivocator_label_extract (IM i) li Hex) = existT ix lix
Heq_input: iom = input
Heq_output: oom = output
Hpr_s: equivocators_state_project final_descriptors s = destination
Heq_descli: final_descriptors' i = equivocator_label_descriptor li
Hpr_x: equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} = Some (Some {| l := existT ix lix; input := input; destination := destination; output := output |}, final_descriptors')
Hvx: vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM (existT i li) (finite_trace_last is tr, iom)
Htx: vtransition FreeE (existT i li) (finite_trace_last is tr, iom) = (s, oom)
H2: i = ix
H3: existT i (existing_equivocator_label_extract (IM i) li Hex) = existT ix lixfinite_valid_trace_from_to PreFree (equivocators_state_project final_descriptors' (finite_trace_last is tr)) (equivocators_state_project final_descriptors s) [{| l := existT i (existing_equivocator_label_extract (IM i) li Hex); input := input; destination := destination; output := output |}]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: vinitial_state_prop Free (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
lix: vlabel (IM i)
input: option message
destination: _composite_state IM
output: option message
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := existT i li; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors i (final_descriptors' i)
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s i (finite_trace_last is tr i)
Hex_new: previous_state_descriptor_prop (IM i) (final_descriptors i) (finite_trace_last is tr i) (final_descriptors' i)
Hchar2: vvalid (IM i) lix (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, input) ∧ (let (si', om') := vtransition (IM i) lix (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, input) in (state_update IM (equivocators_state_project final_descriptors' (finite_trace_last is tr)) i si', om')) = (destination, output)
Hex: existing_equivocator_label (IM i) li
Heq_l: existT i (existing_equivocator_label_extract (IM i) li Hex) = existT i lix
Heq_input: iom = input
Heq_output: oom = output
Hpr_s: equivocators_state_project final_descriptors s = destination
Heq_descli: final_descriptors' i = equivocator_label_descriptor li
Hpr_x: equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} = Some (Some {| l := existT i lix; input := input; destination := destination; output := output |}, final_descriptors')
Hvx: vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM (existT i li) (finite_trace_last is tr, iom)
Htx: vtransition FreeE (existT i li) (finite_trace_last is tr, iom) = (s, oom)
H3: existT i (existing_equivocator_label_extract (IM i) li Hex) = existT i lixfinite_valid_trace_from_to PreFree (equivocators_state_project final_descriptors' (finite_trace_last is tr)) (equivocators_state_project final_descriptors s) [{| l := existT i (existing_equivocator_label_extract (IM i) li Hex); input := input; destination := destination; output := output |}]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: vinitial_state_prop Free (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
lix: vlabel (IM i)
input: option message
destination: _composite_state IM
output: option message
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := existT i li; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors i (final_descriptors' i)
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s i (finite_trace_last is tr i)
Hex_new: previous_state_descriptor_prop (IM i) (final_descriptors i) (finite_trace_last is tr i) (final_descriptors' i)
Hchar2: vvalid (IM i) lix (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, input) ∧ (let (si', om') := vtransition (IM i) lix (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, input) in (state_update IM (equivocators_state_project final_descriptors' (finite_trace_last is tr)) i si', om')) = (destination, output)
Hex: existing_equivocator_label (IM i) li
Heq_l: existT i (existing_equivocator_label_extract (IM i) li Hex) = existT i lix
Heq_input: iom = input
Heq_output: oom = output
Hpr_s: equivocators_state_project final_descriptors s = destination
Heq_descli: final_descriptors' i = equivocator_label_descriptor li
Hpr_x: equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} = Some (Some {| l := existT i lix; input := input; destination := destination; output := output |}, final_descriptors')
Hvx: vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM (existT i li) (finite_trace_last is tr, iom)
Htx: vtransition FreeE (existT i li) (finite_trace_last is tr, iom) = (s, oom)
H1: existing_equivocator_label_extract (IM i) li Hex = lixfinite_valid_trace_from_to PreFree (equivocators_state_project final_descriptors' (finite_trace_last is tr)) (equivocators_state_project final_descriptors s) [{| l := existT i (existing_equivocator_label_extract (IM i) li Hex); input := input; destination := destination; output := output |}]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: vinitial_state_prop Free (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
destination: _composite_state IM
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := existT i li; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors i (final_descriptors' i)
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s i (finite_trace_last is tr i)
Hex_new: previous_state_descriptor_prop (IM i) (final_descriptors i) (finite_trace_last is tr i) (final_descriptors' i)
Hex: existing_equivocator_label (IM i) li
Heq_l: existT i (existing_equivocator_label_extract (IM i) li Hex) = existT i (existing_equivocator_label_extract (IM i) li Hex)
Hchar2: vvalid (IM i) (existing_equivocator_label_extract (IM i) li Hex) (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, iom) ∧ (let (si', om') := vtransition (IM i) (existing_equivocator_label_extract (IM i) li Hex) (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, iom) in (state_update IM (equivocators_state_project final_descriptors' (finite_trace_last is tr)) i si', om')) = (destination, oom)
Hpr_s: equivocators_state_project final_descriptors s = destination
Heq_descli: final_descriptors' i = equivocator_label_descriptor li
Hpr_x: equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} = Some (Some {| l := existT i (existing_equivocator_label_extract (IM i) li Hex); input := iom; destination := destination; output := oom |}, final_descriptors')
Hvx: vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM (existT i li) (finite_trace_last is tr, iom)
Htx: vtransition FreeE (existT i li) (finite_trace_last is tr, iom) = (s, oom)finite_valid_trace_from_to PreFree (equivocators_state_project final_descriptors' (finite_trace_last is tr)) (equivocators_state_project final_descriptors s) [{| l := existT i (existing_equivocator_label_extract (IM i) li Hex); input := iom; destination := destination; output := oom |}]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: vinitial_state_prop Free (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
destination: _composite_state IM
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := existT i li; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors i (final_descriptors' i)
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s i (finite_trace_last is tr i)
Hex_new: previous_state_descriptor_prop (IM i) (final_descriptors i) (finite_trace_last is tr i) (final_descriptors' i)
Hex: existing_equivocator_label (IM i) li
Heq_l: existT i (existing_equivocator_label_extract (IM i) li Hex) = existT i (existing_equivocator_label_extract (IM i) li Hex)
Hvx_pr: vvalid (IM i) (existing_equivocator_label_extract (IM i) li Hex) (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, iom)
Htx_pr: (let (si', om') := vtransition (IM i) (existing_equivocator_label_extract (IM i) li Hex) (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, iom) in (state_update IM (equivocators_state_project final_descriptors' (finite_trace_last is tr)) i si', om')) = (destination, oom)
Hpr_s: equivocators_state_project final_descriptors s = destination
Heq_descli: final_descriptors' i = equivocator_label_descriptor li
Hpr_x: equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} = Some (Some {| l := existT i (existing_equivocator_label_extract (IM i) li Hex); input := iom; destination := destination; output := oom |}, final_descriptors')
Hvx: vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM (existT i li) (finite_trace_last is tr, iom)
Htx: vtransition FreeE (existT i li) (finite_trace_last is tr, iom) = (s, oom)finite_valid_trace_from_to PreFree (equivocators_state_project final_descriptors' (finite_trace_last is tr)) (equivocators_state_project final_descriptors s) [{| l := existT i (existing_equivocator_label_extract (IM i) li Hex); input := iom; destination := destination; output := oom |}]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: vinitial_state_prop Free (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
destination: _composite_state IM
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := existT i li; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors i (final_descriptors' i)
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s i (finite_trace_last is tr i)
Hex_new: previous_state_descriptor_prop (IM i) (final_descriptors i) (finite_trace_last is tr i) (final_descriptors' i)
Hex: existing_equivocator_label (IM i) li
Heq_l: existT i (existing_equivocator_label_extract (IM i) li Hex) = existT i (existing_equivocator_label_extract (IM i) li Hex)
Hvx_pr: vvalid (IM i) (existing_equivocator_label_extract (IM i) li Hex) (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, iom)
Htx_pr: (let (si', om') := vtransition (IM i) (existing_equivocator_label_extract (IM i) li Hex) (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, iom) in (state_update IM (equivocators_state_project final_descriptors' (finite_trace_last is tr)) i si', om')) = (destination, oom)
Hpr_s: equivocators_state_project final_descriptors s = destination
Heq_descli: final_descriptors' i = equivocator_label_descriptor li
Hpr_x: equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} = Some (Some {| l := existT i (existing_equivocator_label_extract (IM i) li Hex); input := iom; destination := destination; output := oom |}, final_descriptors')
Hvx: vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM (existT i li) (finite_trace_last is tr, iom)
Htx: vtransition FreeE (existT i li) (finite_trace_last is tr, iom) = (s, oom)finite_valid_trace_from_to PreFree (equivocators_state_project final_descriptors' (finite_trace_last is tr)) destination [{| l := existT i (existing_equivocator_label_extract (IM i) li Hex); input := iom; destination := destination; output := oom |}]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: vinitial_state_prop Free (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
destination: _composite_state IM
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := existT i li; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors i (final_descriptors' i)
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s i (finite_trace_last is tr i)
Hex_new: previous_state_descriptor_prop (IM i) (final_descriptors i) (finite_trace_last is tr i) (final_descriptors' i)
Hex: existing_equivocator_label (IM i) li
Heq_l: existT i (existing_equivocator_label_extract (IM i) li Hex) = existT i (existing_equivocator_label_extract (IM i) li Hex)
Hvx_pr: vvalid (IM i) (existing_equivocator_label_extract (IM i) li Hex) (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, iom)
Htx_pr: (let (si', om') := vtransition (IM i) (existing_equivocator_label_extract (IM i) li Hex) (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, iom) in (state_update IM (equivocators_state_project final_descriptors' (finite_trace_last is tr)) i si', om')) = (destination, oom)
Hpr_s: equivocators_state_project final_descriptors s = destination
Heq_descli: final_descriptors' i = equivocator_label_descriptor li
Hpr_x: equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} = Some (Some {| l := existT i (existing_equivocator_label_extract (IM i) li Hex); input := iom; destination := destination; output := oom |}, final_descriptors')
Hvx: vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM (existT i li) (finite_trace_last is tr, iom)
Htx: vtransition FreeE (existT i li) (finite_trace_last is tr, iom) = (s, oom)input_valid_transition PreFree (existT i (existing_equivocator_label_extract (IM i) li Hex)) (equivocators_state_project final_descriptors' (finite_trace_last is tr), iom) (destination, oom)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_from_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
HinitX: vinitial_state_prop Free (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
destination: _composite_state IM
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := existT i li; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors i (final_descriptors' i)
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s i (finite_trace_last is tr i)
Hex_new: previous_state_descriptor_prop (IM i) (final_descriptors i) (finite_trace_last is tr i) (final_descriptors' i)
Hex: existing_equivocator_label (IM i) li
Heq_l: existT i (existing_equivocator_label_extract (IM i) li Hex) = existT i (existing_equivocator_label_extract (IM i) li Hex)
Hvx_pr: vvalid (IM i) (existing_equivocator_label_extract (IM i) li Hex) (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, iom)
Htx_pr: (let (si', om') := vtransition (IM i) (existing_equivocator_label_extract (IM i) li Hex) (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, iom) in (state_update IM (equivocators_state_project final_descriptors' (finite_trace_last is tr)) i si', om')) = (destination, oom)
Hpr_s: equivocators_state_project final_descriptors s = destination
Heq_descli: final_descriptors' i = equivocator_label_descriptor li
Hpr_x: equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} = Some (Some {| l := existT i (existing_equivocator_label_extract (IM i) li Hex); input := iom; destination := destination; output := oom |}, final_descriptors')
Hvx: vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM (existT i li) (finite_trace_last is tr, iom)
Htx: vtransition FreeE (existT i li) (finite_trace_last is tr, iom) = (s, oom)valid_state_prop PreFree (equivocators_state_project final_descriptors' (finite_trace_last is tr))assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: valid_state_prop PreFree (equivocators_state_project final_descriptors' (finite_trace_last is tr))
HinitX: vinitial_state_prop Free (equivocators_state_project initial_descriptors is)
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (equivocator_IM i)
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
destination: _composite_state IM
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := existT i li; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors i (final_descriptors' i)
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s i (finite_trace_last is tr i)
Hex_new: previous_state_descriptor_prop (IM i) (final_descriptors i) (finite_trace_last is tr i) (final_descriptors' i)
Hex: existing_equivocator_label (IM i) li
Heq_l: existT i (existing_equivocator_label_extract (IM i) li Hex) = existT i (existing_equivocator_label_extract (IM i) li Hex)
Hvx_pr: vvalid (IM i) (existing_equivocator_label_extract (IM i) li Hex) (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, iom)
Htx_pr: (let (si', om') := vtransition (IM i) (existing_equivocator_label_extract (IM i) li Hex) (equivocators_state_project final_descriptors' (finite_trace_last is tr) i, iom) in (state_update IM (equivocators_state_project final_descriptors' (finite_trace_last is tr)) i si', om')) = (destination, oom)
Hpr_s: equivocators_state_project final_descriptors s = destination
Heq_descli: final_descriptors' i = equivocator_label_descriptor li
Hpr_x: equivocators_transition_item_project final_descriptors {| l := existT i li; input := iom; destination := s; output := oom |} = Some (Some {| l := existT i (existing_equivocator_label_extract (IM i) li Hex); input := iom; destination := destination; output := oom |}, final_descriptors')
Hvx: vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM (existT i li) (finite_trace_last is tr, iom)
Htx: vtransition FreeE (existT i li) (finite_trace_last is tr, iom) = (s, oom)valid_state_prop PreFree (equivocators_state_project final_descriptors' (finite_trace_last is tr))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: equivocators_state_project final_descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr)
Hchar1: True
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)∃ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors s) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: equivocators_state_project final_descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr)
Hchar1: True
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors s) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: equivocators_state_project final_descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors s) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: equivocators_state_project final_descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: equivocators_state_project final_descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: equivocators_state_project final_descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: equivocators_state_project final_descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], final_descriptors') ∧ equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors) ∧ trX = trX ++ []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: equivocators_state_project final_descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)Some ([], final_descriptors') = Some ([], final_descriptors') ∧ equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors) ∧ trX = trX ++ []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: equivocators_state_project final_descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)trX = trX ++ []reflexivity. Qed. Definition equivocators_partial_trace_project (final_descriptors : equivocator_descriptors) (str : composite_state equivocator_IM * list (composite_transition_item equivocator_IM)) : option (composite_state IM * list (composite_transition_item IM)) := let (s, tr) := str in if (decide (not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr))) then match equivocators_trace_project final_descriptors tr with | None => None | Some (trX, initial_descriptors) => Some (equivocators_state_project initial_descriptors s, trX) end else None.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
final_descriptors', initial_descriptors: equivocator_descriptors
Hproper_initial: proper_equivocator_descriptors initial_descriptors is
trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project final_descriptors' tr = Some (trX, initial_descriptors)
HtrX: finite_valid_trace_init_to PreFree (equivocators_state_project initial_descriptors is) (equivocators_state_project final_descriptors' (finite_trace_last is tr)) trX
Htr: finite_valid_trace_from_to PreFreeE is (finite_trace_last is tr) tr
s: _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hinit: vinitial_state_prop FreeE is
final_descriptors: equivocator_descriptors
Hproper: proper_equivocator_descriptors final_descriptors s
Hpr_app: ∀ trX : list (composite_transition_item IM), equivocators_trace_project final_descriptors (tr ++ [{| l := l; input := iom; destination := s; output := oom |}]) = Some (trX, initial_descriptors) ↔ (∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), match equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX)
Hproper': proper_equivocator_descriptors final_descriptors' (finite_trace_last is tr)
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Heq_last_tr: finite_trace_last is tr = state_update equivocator_IM s (projT1 l) (finite_trace_last is tr (projT1 l))
Hex_new: previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr (projT1 l)) (final_descriptors' (projT1 l))
Hchar2: equivocators_state_project final_descriptors s = equivocators_state_project final_descriptors' (finite_trace_last is tr)
Hpr_x: equivocators_transition_item_project final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hvx: let (i, li) := l in vvalid (equivocator_IM i) li (finite_trace_last is tr i, iom)
Hcx: free_constraint equivocator_IM l (finite_trace_last is tr, iom)
Htx: vtransition FreeE l (finite_trace_last is tr, iom) = (s, oom)trX = trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
sX: composite_state equivocator_IM
trX: list (composite_transition_item equivocator_IM)
sY: composite_state IM
trY: list (composite_transition_item IM)partial_trace_project (sX, trX) = Some (sY, trY) ↔ not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX) ∧ (∃ initial_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors trX = Some (trY, initial_descriptors) ∧ equivocators_state_project initial_descriptors sX = sY)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
sX: composite_state equivocator_IM
trX: list (composite_transition_item equivocator_IM)
sY: composite_state IM
trY: list (composite_transition_item IM)partial_trace_project (sX, trX) = Some (sY, trY) ↔ not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX) ∧ (∃ initial_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors trX = Some (trY, initial_descriptors) ∧ equivocators_state_project initial_descriptors sX = sY)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
sX: composite_state equivocator_IM
trX: list (composite_transition_item equivocator_IM)
sY: composite_state IM
trY: list (composite_transition_item IM)(if decide (not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX)) then match equivocators_trace_project final_descriptors trX with | Some (trX, initial_descriptors) => Some (equivocators_state_project initial_descriptors sX, trX) | None => None end else None) = Some (sY, trY) ↔ not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX) ∧ (∃ initial_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors trX = Some (trY, initial_descriptors) ∧ equivocators_state_project initial_descriptors sX = sY)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
sX: composite_state equivocator_IM
trX: list (composite_transition_item equivocator_IM)
sY: composite_state IM
trY: list (composite_transition_item IM)(if decide (not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX)) then match equivocators_trace_project final_descriptors trX with | Some (trX, initial_descriptors) => Some (equivocators_state_project initial_descriptors sX, trX) | None => None end else None) = Some (sY, trY) → not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX) ∧ (∃ initial_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors trX = Some (trY, initial_descriptors) ∧ equivocators_state_project initial_descriptors sX = sY)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
sX: composite_state equivocator_IM
trX: list (composite_transition_item equivocator_IM)
sY: composite_state IM
trY: list (composite_transition_item IM)not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX) ∧ (∃ initial_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors trX = Some (trY, initial_descriptors) ∧ equivocators_state_project initial_descriptors sX = sY) → (if decide (not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX)) then match equivocators_trace_project final_descriptors trX with | Some (trX, initial_descriptors) => Some ( equivocators_state_project initial_descriptors sX, trX) | None => None end else None) = Some (sY, trY)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
sX: composite_state equivocator_IM
trX: list (composite_transition_item equivocator_IM)
sY: composite_state IM
trY: list (composite_transition_item IM)(if decide (not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX)) then match equivocators_trace_project final_descriptors trX with | Some (trX, initial_descriptors) => Some (equivocators_state_project initial_descriptors sX, trX) | None => None end else None) = Some (sY, trY) → not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX) ∧ (∃ initial_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors trX = Some (trY, initial_descriptors) ∧ equivocators_state_project initial_descriptors sX = sY)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
sX: composite_state equivocator_IM
trX: list (composite_transition_item equivocator_IM)
sY: composite_state IM
trY: list (composite_transition_item IM)
Hpr_tr: (if decide (not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX)) then match equivocators_trace_project final_descriptors trX with | Some (trX, initial_descriptors) => Some (equivocators_state_project initial_descriptors sX, trX) | None => None end else None) = Some (sY, trY)not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX) ∧ (∃ initial_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors trX = Some (trY, initial_descriptors) ∧ equivocators_state_project initial_descriptors sX = sY)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
sX: composite_state equivocator_IM
trX: list (composite_transition_item equivocator_IM)
sY: composite_state IM
trY: list (composite_transition_item IM)
H1: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX)
Hpr_tr: match equivocators_trace_project final_descriptors trX with | Some (trX, initial_descriptors) => Some (equivocators_state_project initial_descriptors sX, trX) | None => None end = Some (sY, trY)not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX) ∧ (∃ initial_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors trX = Some (trY, initial_descriptors) ∧ equivocators_state_project initial_descriptors sX = sY)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
sX: composite_state equivocator_IM
trX: list (composite_transition_item equivocator_IM)
sY: composite_state IM
trY: list (composite_transition_item IM)
H1: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX)
_trY: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors trX = Some (_trY, initial_descriptors)
Hpr_tr: Some (equivocators_state_project initial_descriptors sX, _trY) = Some (sY, trY)not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX) ∧ (∃ initial_descriptors0 : equivocator_descriptors, Some (_trY, initial_descriptors) = Some (trY, initial_descriptors0) ∧ equivocators_state_project initial_descriptors0 sX = sY)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
sX: composite_state equivocator_IM
trX: list (composite_transition_item equivocator_IM)
sY: composite_state IM
trY: list (composite_transition_item IM)
H1: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX)
_trY: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors trX = Some (_trY, initial_descriptors)
Hpr_tr: Some (equivocators_state_project initial_descriptors sX, _trY) = Some (sY, trY)
H3: equivocators_state_project initial_descriptors sX = sY
H4: _trY = trYnot_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX) ∧ (∃ initial_descriptors0 : equivocator_descriptors, Some (trY, initial_descriptors) = Some (trY, initial_descriptors0) ∧ equivocators_state_project initial_descriptors0 sX = equivocators_state_project initial_descriptors sX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
sX: composite_state equivocator_IM
trX: list (composite_transition_item equivocator_IM)
sY: composite_state IM
trY: list (composite_transition_item IM)
H1: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX)
initial_descriptors: equivocator_descriptors
Hpr_tr: Some (equivocators_state_project initial_descriptors sX, trY) = Some (sY, trY)
Htr_project: equivocators_trace_project final_descriptors trX = Some (trY, initial_descriptors)
H3: equivocators_state_project initial_descriptors sX = sYnot_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX) ∧ (∃ initial_descriptors0 : equivocator_descriptors, Some (trY, initial_descriptors) = Some (trY, initial_descriptors0) ∧ equivocators_state_project initial_descriptors0 sX = equivocators_state_project initial_descriptors sX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
sX: composite_state equivocator_IM
trX: list (composite_transition_item equivocator_IM)
sY: composite_state IM
trY: list (composite_transition_item IM)
H1: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors trX = Some (trY, initial_descriptors)
H3: equivocators_state_project initial_descriptors sX = sYnot_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX) ∧ (∃ initial_descriptors0 : equivocator_descriptors, Some (trY, initial_descriptors) = Some (trY, initial_descriptors0) ∧ equivocators_state_project initial_descriptors0 sX = equivocators_state_project initial_descriptors sX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
sX: composite_state equivocator_IM
trX: list (composite_transition_item equivocator_IM)
sY: composite_state IM
trY: list (composite_transition_item IM)
H1: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors trX = Some (trY, initial_descriptors)
H3: equivocators_state_project initial_descriptors sX = sY∃ initial_descriptors0 : equivocator_descriptors, Some (trY, initial_descriptors) = Some (trY, initial_descriptors0) ∧ equivocators_state_project initial_descriptors0 sX = equivocators_state_project initial_descriptors sXsplit; reflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
sX: composite_state equivocator_IM
trX: list (composite_transition_item equivocator_IM)
sY: composite_state IM
trY: list (composite_transition_item IM)
H1: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors trX = Some (trY, initial_descriptors)
H3: equivocators_state_project initial_descriptors sX = sYSome (trY, initial_descriptors) = Some (trY, initial_descriptors) ∧ equivocators_state_project initial_descriptors sX = equivocators_state_project initial_descriptors sXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
sX: composite_state equivocator_IM
trX: list (composite_transition_item equivocator_IM)
sY: composite_state IM
trY: list (composite_transition_item IM)not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX) ∧ (∃ initial_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors trX = Some (trY, initial_descriptors) ∧ equivocators_state_project initial_descriptors sX = sY) → (if decide (not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX)) then match equivocators_trace_project final_descriptors trX with | Some (trX, initial_descriptors) => Some (equivocators_state_project initial_descriptors sX, trX) | None => None end else None) = Some (sY, trY)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
sX: composite_state equivocator_IM
trX: list (composite_transition_item equivocator_IM)
sY: composite_state IM
trY: list (composite_transition_item IM)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX)
initial_descriptors: equivocator_descriptors
Hpr_tr: equivocators_trace_project final_descriptors trX = Some (trY, initial_descriptors)
Hpr_s: equivocators_state_project initial_descriptors sX = sY(if decide (not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX)) then match equivocators_trace_project final_descriptors trX with | Some (trX, initial_descriptors) => Some (equivocators_state_project initial_descriptors sX, trX) | None => None end else None) = Some (sY, trY)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
sX: composite_state equivocator_IM
trX: list (composite_transition_item equivocator_IM)
sY: composite_state IM
trY: list (composite_transition_item IM)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX)
initial_descriptors: equivocator_descriptors
Hpr_tr: equivocators_trace_project final_descriptors trX = Some (trY, initial_descriptors)
Hpr_s: equivocators_state_project initial_descriptors sX = sYmatch equivocators_trace_project final_descriptors trX with | Some (trX, initial_descriptors) => Some (equivocators_state_project initial_descriptors sX, trX) | None => None end = Some (sY, trY)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
sX: composite_state equivocator_IM
trX: list (composite_transition_item equivocator_IM)
sY: composite_state IM
trY: list (composite_transition_item IM)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX)
initial_descriptors: equivocator_descriptors
Hpr_tr: equivocators_trace_project final_descriptors trX = Some (trY, initial_descriptors)
Hpr_s: equivocators_state_project initial_descriptors sX = sYSome (equivocators_state_project initial_descriptors sX, trY) = Some (sY, trY)reflexivity. Qed. Definition destruct_equivocators_partial_trace_project {final_descriptors : equivocator_descriptors} (X := free_composite_vlsm equivocator_IM) (partial_trace_project := equivocators_partial_trace_project final_descriptors) {sX trX sY trY} (Hpr_tr : partial_trace_project (sX, trX) = Some (sY, trY)) : not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX) /\ exists initial_descriptors, equivocators_trace_project final_descriptors trX = Some (trY, initial_descriptors) /\ equivocators_state_project initial_descriptors sX = sY := proj1 (equivocators_partial_trace_project_characterization final_descriptors sX trX sY trY) Hpr_tr. Definition construct_equivocators_partial_trace_project {final_descriptors : equivocator_descriptors} (X := free_composite_vlsm equivocator_IM) (partial_trace_project := equivocators_partial_trace_project final_descriptors) {sX trX sY trY} (H : not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX) /\ exists initial_descriptors, equivocators_trace_project final_descriptors trX = Some (trY, initial_descriptors) /\ equivocators_state_project initial_descriptors sX = sY) : partial_trace_project (sX, trX) = Some (sY, trY) := proj2 (equivocators_partial_trace_project_characterization final_descriptors sX trX sY trY) H.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
sX: composite_state equivocator_IM
trX: list (composite_transition_item equivocator_IM)
trY: list (composite_transition_item IM)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last sX trX)
initial_descriptors: equivocator_descriptors
Hpr_tr: equivocators_trace_project final_descriptors trX = Some (trY, initial_descriptors)Some (equivocators_state_project initial_descriptors sX, trY) = Some (equivocators_state_project initial_descriptors sX, trY)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))∀ (sX : composite_state equivocator_IM) (trX : list (composite_transition_item equivocator_IM)) (sY : composite_state IM) (trY : list (composite_transition_item IM)), partial_trace_project (sX, trX) = Some (sY, trY) → ∀ (s'X : state) (preX : list transition_item), finite_trace_last s'X preX = sX → finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) s'X (preX ++ trX) → ∃ (s'Y : composite_state IM) (preY : list (composite_transition_item IM)), partial_trace_project (s'X, preX ++ trX) = Some (s'Y, preY ++ trY) ∧ finite_trace_last s'Y preY = sYmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))∀ (sX : composite_state equivocator_IM) (trX : list (composite_transition_item equivocator_IM)) (sY : composite_state IM) (trY : list (composite_transition_item IM)), partial_trace_project (sX, trX) = Some (sY, trY) → ∀ (s'X : state) (preX : list transition_item), finite_trace_last s'X preX = sX → finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) s'X (preX ++ trX) → ∃ (s'Y : composite_state IM) (preY : list (composite_transition_item IM)), partial_trace_project (s'X, preX ++ trX) = Some (s'Y, preY ++ trY) ∧ finite_trace_last s'Y preY = sYmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
s: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
sX: composite_state IM
trX: list (composite_transition_item IM)
Hpr_tr: partial_trace_project (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) s_pre (pre ++ tr)∃ (s'Y : composite_state IM) (preY : list (composite_transition_item IM)), partial_trace_project (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
s: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
sX: composite_state IM
trX: list (composite_transition_item IM)
Hpr_tr: partial_trace_project (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) s_pre (pre ++ tr)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project initial_descriptors s = sX∃ (s'Y : composite_state IM) (preY : list (composite_transition_item IM)), partial_trace_project (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
s: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
sX: composite_state IM
trX: list (composite_transition_item IM)
Hpr_tr: partial_trace_project (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from PreFreeE s_pre pre ∧ finite_valid_trace_from PreFreeE (finite_trace_last s_pre pre) tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project initial_descriptors s = sX∃ (s'Y : composite_state IM) (preY : list (composite_transition_item IM)), partial_trace_project (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
s: composite_state equivocator_IM
tr: list (composite_transition_item equivocator_IM)
sX: composite_state IM
trX: list (composite_transition_item IM)
Hpr_tr: partial_trace_project (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre: finite_valid_trace_from PreFreeE s_pre pre
Htr: finite_valid_trace_from PreFreeE (finite_trace_last s_pre pre) tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project initial_descriptors s = sX∃ (s'Y : composite_state IM) (preY : list (composite_transition_item IM)), partial_trace_project (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
s_pre: state
pre: list transition_item
initial_descriptors: equivocator_descriptors
Hpr_tr: partial_trace_project (finite_trace_last s_pre pre, tr) = Some (equivocators_state_project initial_descriptors (finite_trace_last s_pre pre), trX)
Hpre: finite_valid_trace_from PreFreeE s_pre pre
Htr: finite_valid_trace_from PreFreeE (finite_trace_last s_pre pre) tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Htr_project: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)∃ (s'Y : composite_state IM) (preY : list (composite_transition_item IM)), partial_trace_project (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = equivocators_state_project initial_descriptors (finite_trace_last s_pre pre)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
s_pre: state
pre: list transition_item
initial_descriptors: equivocator_descriptors
Hpr_tr: partial_trace_project (finite_trace_last s_pre pre, tr) = Some (equivocators_state_project initial_descriptors (finite_trace_last s_pre pre), trX)
Hpre: finite_valid_trace_from PreFreeE s_pre pre
Htr: finite_valid_trace_from PreFreeE (finite_trace_last s_pre pre) tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Htr_project: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)∃ (s'Y : composite_state IM) (preY : list (composite_transition_item IM)), partial_trace_project (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = equivocators_state_project initial_descriptors (finite_trace_last s_pre pre)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
s_pre: state
pre: list transition_item
initial_descriptors: equivocator_descriptors
Hpr_tr: partial_trace_project (finite_trace_last s_pre pre, tr) = Some (equivocators_state_project initial_descriptors (finite_trace_last s_pre pre), trX)
Hpre: finite_valid_trace_from PreFreeE s_pre pre
Htr: finite_valid_trace_from PreFreeE (finite_trace_last s_pre pre) tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Htr_project: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hinitial_descriptors: proper_equivocator_descriptors initial_descriptors (finite_trace_last s_pre pre)∃ (s'Y : composite_state IM) (preY : list (composite_transition_item IM)), partial_trace_project (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = equivocators_state_project initial_descriptors (finite_trace_last s_pre pre)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
s_pre: state
pre: list transition_item
initial_descriptors: equivocator_descriptors
Hpr_tr: partial_trace_project (finite_trace_last s_pre pre, tr) = Some (equivocators_state_project initial_descriptors (finite_trace_last s_pre pre), trX)
Hpre: finite_valid_trace_from PreFreeE s_pre pre
Htr: finite_valid_trace_from PreFreeE (finite_trace_last s_pre pre) tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Htr_project: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hinitial_descriptors: proper_equivocator_descriptors initial_descriptors (finite_trace_last s_pre pre)
preX: list (composite_transition_item IM)
pre_descriptors: equivocator_descriptors
Hpre_project: equivocators_trace_project initial_descriptors pre = Some (preX, pre_descriptors)
Hpre_desciptors: proper_equivocator_descriptors pre_descriptors s_pre
Hs_project: equivocators_state_project initial_descriptors (finite_trace_last s_pre pre) = finite_trace_last (equivocators_state_project pre_descriptors s_pre) preX∃ (s'Y : composite_state IM) (preY : list (composite_transition_item IM)), partial_trace_project (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = equivocators_state_project initial_descriptors (finite_trace_last s_pre pre)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
s_pre: state
pre: list transition_item
initial_descriptors: equivocator_descriptors
Hpr_tr: partial_trace_project (finite_trace_last s_pre pre, tr) = Some (equivocators_state_project initial_descriptors (finite_trace_last s_pre pre), trX)
Hpre: finite_valid_trace_from PreFreeE s_pre pre
Htr: finite_valid_trace_from PreFreeE (finite_trace_last s_pre pre) tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Htr_project: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hinitial_descriptors: proper_equivocator_descriptors initial_descriptors (finite_trace_last s_pre pre)
preX: list (composite_transition_item IM)
pre_descriptors: equivocator_descriptors
Hpre_project: equivocators_trace_project initial_descriptors pre = Some (preX, pre_descriptors)
Hpre_desciptors: proper_equivocator_descriptors pre_descriptors s_pre
Hs_project: equivocators_state_project initial_descriptors (finite_trace_last s_pre pre) = finite_trace_last (equivocators_state_project pre_descriptors s_pre) preXpartial_trace_project (s_pre, pre ++ tr) = Some (equivocators_state_project pre_descriptors s_pre, preX ++ trX) ∧ finite_trace_last (equivocators_state_project pre_descriptors s_pre) preX = equivocators_state_project initial_descriptors (finite_trace_last s_pre pre)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
s_pre: state
pre: list transition_item
initial_descriptors: equivocator_descriptors
Hpr_tr: partial_trace_project (finite_trace_last s_pre pre, tr) = Some (equivocators_state_project initial_descriptors (finite_trace_last s_pre pre), trX)
Hpre: finite_valid_trace_from PreFreeE s_pre pre
Htr: finite_valid_trace_from PreFreeE (finite_trace_last s_pre pre) tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Htr_project: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hinitial_descriptors: proper_equivocator_descriptors initial_descriptors (finite_trace_last s_pre pre)
preX: list (composite_transition_item IM)
pre_descriptors: equivocator_descriptors
Hpre_project: equivocators_trace_project initial_descriptors pre = Some (preX, pre_descriptors)
Hpre_desciptors: proper_equivocator_descriptors pre_descriptors s_pre
Hs_project: equivocators_state_project initial_descriptors (finite_trace_last s_pre pre) = finite_trace_last (equivocators_state_project pre_descriptors s_pre) preXpartial_trace_project (s_pre, pre ++ tr) = Some (equivocators_state_project pre_descriptors s_pre, preX ++ trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
s_pre: state
pre: list transition_item
initial_descriptors: equivocator_descriptors
Hpr_tr: partial_trace_project (finite_trace_last s_pre pre, tr) = Some (equivocators_state_project initial_descriptors (finite_trace_last s_pre pre), trX)
Hpre: finite_valid_trace_from PreFreeE s_pre pre
Htr: finite_valid_trace_from PreFreeE (finite_trace_last s_pre pre) tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Htr_project: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hinitial_descriptors: proper_equivocator_descriptors initial_descriptors (finite_trace_last s_pre pre)
preX: list (composite_transition_item IM)
pre_descriptors: equivocator_descriptors
Hpre_project: equivocators_trace_project initial_descriptors pre = Some (preX, pre_descriptors)
Hpre_desciptors: proper_equivocator_descriptors pre_descriptors s_pre
Hs_project: equivocators_state_project initial_descriptors (finite_trace_last s_pre pre) = finite_trace_last (equivocators_state_project pre_descriptors s_pre) preXnot_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s_pre (pre ++ tr)) ∧ (∃ initial_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors (pre ++ tr) = Some (preX ++ trX, initial_descriptors) ∧ equivocators_state_project initial_descriptors s_pre = equivocators_state_project pre_descriptors s_pre)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
s_pre: state
pre: list transition_item
initial_descriptors: equivocator_descriptors
Hpr_tr: partial_trace_project (finite_trace_last s_pre pre, tr) = Some (equivocators_state_project initial_descriptors (finite_trace_last s_pre pre), trX)
Hpre: finite_valid_trace_from PreFreeE s_pre pre
Htr: finite_valid_trace_from PreFreeE (finite_trace_last s_pre pre) tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Htr_project: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hinitial_descriptors: proper_equivocator_descriptors initial_descriptors (finite_trace_last s_pre pre)
preX: list (composite_transition_item IM)
pre_descriptors: equivocator_descriptors
Hpre_project: equivocators_trace_project initial_descriptors pre = Some (preX, pre_descriptors)
Hpre_desciptors: proper_equivocator_descriptors pre_descriptors s_pre
Hs_project: equivocators_state_project initial_descriptors (finite_trace_last s_pre pre) = finite_trace_last (equivocators_state_project pre_descriptors s_pre) preX∃ initial_descriptors : equivocator_descriptors, equivocators_trace_project final_descriptors (pre ++ tr) = Some (preX ++ trX, initial_descriptors) ∧ equivocators_state_project initial_descriptors s_pre = equivocators_state_project pre_descriptors s_premessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
s_pre: state
pre: list transition_item
initial_descriptors: equivocator_descriptors
Hpr_tr: partial_trace_project (finite_trace_last s_pre pre, tr) = Some (equivocators_state_project initial_descriptors (finite_trace_last s_pre pre), trX)
Hpre: finite_valid_trace_from PreFreeE s_pre pre
Htr: finite_valid_trace_from PreFreeE (finite_trace_last s_pre pre) tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Htr_project: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hinitial_descriptors: proper_equivocator_descriptors initial_descriptors (finite_trace_last s_pre pre)
preX: list (composite_transition_item IM)
pre_descriptors: equivocator_descriptors
Hpre_project: equivocators_trace_project initial_descriptors pre = Some (preX, pre_descriptors)
Hpre_desciptors: proper_equivocator_descriptors pre_descriptors s_pre
Hs_project: equivocators_state_project initial_descriptors (finite_trace_last s_pre pre) = finite_trace_last (equivocators_state_project pre_descriptors s_pre) preXequivocators_trace_project final_descriptors (pre ++ tr) = Some (preX ++ trX, pre_descriptors) ∧ equivocators_state_project pre_descriptors s_pre = equivocators_state_project pre_descriptors s_premessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
s_pre: state
pre: list transition_item
initial_descriptors: equivocator_descriptors
Hpr_tr: partial_trace_project (finite_trace_last s_pre pre, tr) = Some (equivocators_state_project initial_descriptors (finite_trace_last s_pre pre), trX)
Hpre: finite_valid_trace_from PreFreeE s_pre pre
Htr: finite_valid_trace_from PreFreeE (finite_trace_last s_pre pre) tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Htr_project: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hinitial_descriptors: proper_equivocator_descriptors initial_descriptors (finite_trace_last s_pre pre)
preX: list (composite_transition_item IM)
pre_descriptors: equivocator_descriptors
Hpre_project: equivocators_trace_project initial_descriptors pre = Some (preX, pre_descriptors)
Hpre_desciptors: proper_equivocator_descriptors pre_descriptors s_pre
Hs_project: equivocators_state_project initial_descriptors (finite_trace_last s_pre pre) = finite_trace_last (equivocators_state_project pre_descriptors s_pre) preXequivocators_trace_project final_descriptors (pre ++ tr) = Some (preX ++ trX, pre_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
s_pre: state
pre: list transition_item
initial_descriptors: equivocator_descriptors
Hpr_tr: partial_trace_project (finite_trace_last s_pre pre, tr) = Some (equivocators_state_project initial_descriptors (finite_trace_last s_pre pre), trX)
Hpre: finite_valid_trace_from PreFreeE s_pre pre
Htr: finite_valid_trace_from PreFreeE (finite_trace_last s_pre pre) tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Htr_project: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hinitial_descriptors: proper_equivocator_descriptors initial_descriptors (finite_trace_last s_pre pre)
preX: list (composite_transition_item IM)
pre_descriptors: equivocator_descriptors
Hpre_project: equivocators_trace_project initial_descriptors pre = Some (preX, pre_descriptors)
Hpre_desciptors: proper_equivocator_descriptors pre_descriptors s_pre
Hs_project: equivocators_state_project initial_descriptors (finite_trace_last s_pre pre) = finite_trace_last (equivocators_state_project pre_descriptors s_pre) preX∃ (preX0 sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project final_descriptors tr = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' pre = Some (preX0, pre_descriptors) ∧ preX ++ trX = preX0 ++ sufXrepeat split; assumption. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
X:= free_composite_vlsm equivocator_IM: VLSM message
partial_trace_project:= equivocators_partial_trace_project final_descriptors: composite_state equivocator_IM * list (composite_transition_item equivocator_IM) → option (composite_state IM * list (composite_transition_item IM))
tr: list (composite_transition_item equivocator_IM)
trX: list (composite_transition_item IM)
s_pre: state
pre: list transition_item
initial_descriptors: equivocator_descriptors
Hpr_tr: partial_trace_project (finite_trace_last s_pre pre, tr) = Some (equivocators_state_project initial_descriptors (finite_trace_last s_pre pre), trX)
Hpre: finite_valid_trace_from PreFreeE s_pre pre
Htr: finite_valid_trace_from PreFreeE (finite_trace_last s_pre pre) tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last (finite_trace_last s_pre pre) tr)
Htr_project: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hinitial_descriptors: proper_equivocator_descriptors initial_descriptors (finite_trace_last s_pre pre)
preX: list (composite_transition_item IM)
pre_descriptors: equivocator_descriptors
Hpre_project: equivocators_trace_project initial_descriptors pre = Some (preX, pre_descriptors)
Hpre_desciptors: proper_equivocator_descriptors pre_descriptors s_pre
Hs_project: equivocators_state_project initial_descriptors (finite_trace_last s_pre pre) = finite_trace_last (equivocators_state_project pre_descriptors s_pre) preXequivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_trace_project initial_descriptors pre = Some (preX, pre_descriptors) ∧ preX ++ trX = preX ++ trX
The projection of an composite equivocator state using zero_descriptors
which is guaranteed to always succeed.
Definition equivocators_total_state_project := equivocators_state_project (zero_descriptor IM). Definition equivocators_total_label_project (l : composite_label equivocator_IM) : option (composite_label IM) := let (i, li) := l in option_map (existT i) (equivocator_label_zero_project _ li). Definition equivocators_total_trace_project (tr : list (composite_transition_item equivocator_IM)) : list (composite_transition_item IM) := from_option fst [] (equivocators_trace_project (zero_descriptor IM) tr).
The projection of an composite equivocator trace using zero_descriptors
which is guaranteed to always succeed.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s trequivocators_trace_project (zero_descriptor IM) tr = Some (equivocators_total_trace_project tr, zero_descriptor IM)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s trequivocators_trace_project (zero_descriptor IM) tr = Some (equivocators_total_trace_project tr, zero_descriptor IM)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s trequivocators_trace_project (zero_descriptor IM) tr = Some (from_option fst [] (equivocators_trace_project (zero_descriptor IM) tr), zero_descriptor IM)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
_trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project (zero_descriptor IM) tr = Some (_trX, zero_descriptor IM)equivocators_trace_project (zero_descriptor IM) tr = Some (from_option fst [] (equivocators_trace_project (zero_descriptor IM) tr), zero_descriptor IM)reflexivity. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
_trX: list (composite_transition_item IM)
Hpr_tr: equivocators_trace_project (zero_descriptor IM) tr = Some (_trX, zero_descriptor IM)Some (_trX, zero_descriptor IM) = Some (from_option fst [] (Some (_trX, zero_descriptor IM)), zero_descriptor IM)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)∀ tr1X tr2X : list transition_item, (∃ sX : state, finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) sX (tr1X ++ tr2X)) → trace_project (tr1X ++ tr2X) = trace_project tr1X ++ trace_project tr2Xmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)∀ tr1X tr2X : list transition_item, (∃ sX : state, finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) sX (tr1X ++ tr2X)) → trace_project (tr1X ++ tr2X) = trace_project tr1X ++ trace_project tr2Xmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
tr1X, tr2X: list transition_item
sX: state
Hpre_tr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) sX (tr1X ++ tr2X)trace_project (tr1X ++ tr2X) = trace_project tr1X ++ trace_project tr2Xmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
tr1X, tr2X: list transition_item
sX: state
Hpre_tr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) sX (tr1X ++ tr2X)
Htr12_pr: equivocators_trace_project (zero_descriptor IM) (tr1X ++ tr2X) = Some (equivocators_total_trace_project (tr1X ++ tr2X), zero_descriptor IM)trace_project (tr1X ++ tr2X) = trace_project tr1X ++ trace_project tr2Xmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
tr1X, tr2X: list transition_item
sX: state
Hpre_tr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) sX (tr1X ++ tr2X)
Htr12_pr: ∃ (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors), equivocators_trace_project (zero_descriptor IM) tr2X = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project eqv_descriptors' tr1X = Some (preX, zero_descriptor IM) ∧ equivocators_total_trace_project (tr1X ++ tr2X) = preX ++ sufXtrace_project (tr1X ++ tr2X) = trace_project tr1X ++ trace_project tr2Xmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
tr1X, tr2X: list transition_item
sX: state
Hpre_tr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) sX (tr1X ++ tr2X)
tr1Y, tr2Y: list (composite_transition_item IM)
descriptors: equivocator_descriptors
Htr2_pr: equivocators_trace_project (zero_descriptor IM) tr2X = Some (tr2Y, descriptors)
Htr1_pr: equivocators_trace_project descriptors tr1X = Some (tr1Y, zero_descriptor IM)
Htr12_eq: equivocators_total_trace_project (tr1X ++ tr2X) = tr1Y ++ tr2Ytrace_project (tr1X ++ tr2X) = trace_project tr1X ++ trace_project tr2Xmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
tr1X, tr2X: list transition_item
sX: state
Hpre_tr: finite_valid_trace_from PreFreeE sX tr1X ∧ finite_valid_trace_from PreFreeE (finite_trace_last sX tr1X) tr2X
tr1Y, tr2Y: list (composite_transition_item IM)
descriptors: equivocator_descriptors
Htr2_pr: equivocators_trace_project (zero_descriptor IM) tr2X = Some (tr2Y, descriptors)
Htr1_pr: equivocators_trace_project descriptors tr1X = Some (tr1Y, zero_descriptor IM)
Htr12_eq: equivocators_total_trace_project (tr1X ++ tr2X) = tr1Y ++ tr2Ytrace_project (tr1X ++ tr2X) = trace_project tr1X ++ trace_project tr2Xmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
tr1X, tr2X: list transition_item
sX: state
Hpre_tr1: finite_valid_trace_from PreFreeE sX tr1X
Hpre_tr2: finite_valid_trace_from PreFreeE (finite_trace_last sX tr1X) tr2X
tr1Y, tr2Y: list (composite_transition_item IM)
descriptors: equivocator_descriptors
Htr2_pr: equivocators_trace_project (zero_descriptor IM) tr2X = Some (tr2Y, descriptors)
Htr1_pr: equivocators_trace_project descriptors tr1X = Some (tr1Y, zero_descriptor IM)
Htr12_eq: equivocators_total_trace_project (tr1X ++ tr2X) = tr1Y ++ tr2Ytrace_project (tr1X ++ tr2X) = trace_project tr1X ++ trace_project tr2Xmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
tr1X, tr2X: list transition_item
sX: state
Hpre_tr1: finite_valid_trace_from PreFreeE sX tr1X
Hpre_tr2: finite_valid_trace_from PreFreeE (finite_trace_last sX tr1X) tr2X
tr1Y, tr2Y: list (composite_transition_item IM)
descriptors: equivocator_descriptors
Htr2_pr: Some (equivocators_total_trace_project tr2X, zero_descriptor IM) = Some (tr2Y, descriptors)
Htr1_pr: equivocators_trace_project descriptors tr1X = Some (tr1Y, zero_descriptor IM)
Htr12_eq: equivocators_total_trace_project (tr1X ++ tr2X) = tr1Y ++ tr2Ytrace_project (tr1X ++ tr2X) = trace_project tr1X ++ trace_project tr2Xmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
tr1X, tr2X: list transition_item
sX: state
Hpre_tr1: finite_valid_trace_from PreFreeE sX tr1X
Hpre_tr2: finite_valid_trace_from PreFreeE (finite_trace_last sX tr1X) tr2X
tr1Y, tr2Y: list (composite_transition_item IM)
descriptors: equivocator_descriptors
Htr2_pr: Some (equivocators_total_trace_project tr2X, zero_descriptor IM) = Some (tr2Y, descriptors)
Htr1_pr: equivocators_trace_project descriptors tr1X = Some (tr1Y, zero_descriptor IM)
Htr12_eq: equivocators_total_trace_project (tr1X ++ tr2X) = tr1Y ++ tr2Y
H2: equivocators_total_trace_project tr2X = tr2Y
H3: zero_descriptor IM = descriptorstrace_project (tr1X ++ tr2X) = trace_project tr1X ++ trace_project tr2Xmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
tr1X, tr2X: list transition_item
sX: state
Hpre_tr1: finite_valid_trace_from PreFreeE sX tr1X
Hpre_tr2: finite_valid_trace_from PreFreeE (finite_trace_last sX tr1X) tr2X
tr1Y: list (composite_transition_item IM)
Htr1_pr: equivocators_trace_project (zero_descriptor IM) tr1X = Some (tr1Y, zero_descriptor IM)
Htr2_pr: Some (equivocators_total_trace_project tr2X, zero_descriptor IM) = Some (equivocators_total_trace_project tr2X, zero_descriptor IM)
Htr12_eq: equivocators_total_trace_project (tr1X ++ tr2X) = tr1Y ++ equivocators_total_trace_project tr2Xtrace_project (tr1X ++ tr2X) = trace_project tr1X ++ trace_project tr2Xmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
tr1X, tr2X: list transition_item
sX: state
Hpre_tr1: finite_valid_trace_from PreFreeE sX tr1X
Hpre_tr2: finite_valid_trace_from PreFreeE (finite_trace_last sX tr1X) tr2X
tr1Y: list (composite_transition_item IM)
Htr1_pr: equivocators_trace_project (zero_descriptor IM) tr1X = Some (tr1Y, zero_descriptor IM)
Htr12_eq: equivocators_total_trace_project (tr1X ++ tr2X) = tr1Y ++ equivocators_total_trace_project tr2Xtrace_project (tr1X ++ tr2X) = trace_project tr1X ++ trace_project tr2Xmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
tr1X, tr2X: list transition_item
sX: state
Hpre_tr1: finite_valid_trace_from PreFreeE sX tr1X
Hpre_tr2: finite_valid_trace_from PreFreeE (finite_trace_last sX tr1X) tr2X
tr1Y: list (composite_transition_item IM)
Htr1_pr: Some (equivocators_total_trace_project tr1X, zero_descriptor IM) = Some (tr1Y, zero_descriptor IM)
Htr12_eq: equivocators_total_trace_project (tr1X ++ tr2X) = tr1Y ++ equivocators_total_trace_project tr2Xtrace_project (tr1X ++ tr2X) = trace_project tr1X ++ trace_project tr2Xmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
tr1X, tr2X: list transition_item
sX: state
Hpre_tr1: finite_valid_trace_from PreFreeE sX tr1X
Hpre_tr2: finite_valid_trace_from PreFreeE (finite_trace_last sX tr1X) tr2X
tr1Y: list (composite_transition_item IM)
Htr1_pr: Some (equivocators_total_trace_project tr1X, zero_descriptor IM) = Some (tr1Y, zero_descriptor IM)
Htr12_eq: equivocators_total_trace_project (tr1X ++ tr2X) = tr1Y ++ equivocators_total_trace_project tr2X
H2: equivocators_total_trace_project tr1X = tr1Ytrace_project (tr1X ++ tr2X) = trace_project tr1X ++ trace_project tr2Xassumption. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
tr1X, tr2X: list transition_item
sX: state
Hpre_tr1: finite_valid_trace_from PreFreeE sX tr1X
Hpre_tr2: finite_valid_trace_from PreFreeE (finite_trace_last sX tr1X) tr2X
Htr12_eq: equivocators_total_trace_project (tr1X ++ tr2X) = equivocators_total_trace_project tr1X ++ equivocators_total_trace_project tr2X
Htr1_pr: Some (equivocators_total_trace_project tr1X, zero_descriptor IM) = Some (equivocators_total_trace_project tr1X, zero_descriptor IM)trace_project (tr1X ++ tr2X) = trace_project tr1X ++ trace_project tr2Xmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s trpre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s trpre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
x: transition_item
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s (tr ++ [x])
IHtr: finite_valid_trace_from PreFreeE s tr → pre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project trpre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project (tr ++ [x]) = equivocators_total_trace_project (tr ++ [x])message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
x: transition_item
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s (tr ++ [x])
IHtr: finite_valid_trace_from PreFreeE s tr → pre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project trpre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project (tr ++ [x]) = equivocators_total_trace_project tr ++ equivocators_total_trace_project [x]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
x: transition_item
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s (tr ++ [x])
IHtr: finite_valid_trace_from PreFreeE s tr → pre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project trpre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr ++ pre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project [x] = equivocators_total_trace_project tr ++ equivocators_total_trace_project [x]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
x: transition_item
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [x]
IHtr: finite_valid_trace_from PreFreeE s tr → pre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project trpre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr ++ pre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project [x] = equivocators_total_trace_project tr ++ equivocators_total_trace_project [x]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
x: transition_item
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [x]
IHtr: pre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project trpre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr ++ pre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project [x] = equivocators_total_trace_project tr ++ equivocators_total_trace_project [x]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
x: transition_item
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [x]
IHtr: pre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project trequivocators_total_trace_project tr ++ pre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project [x] = equivocators_total_trace_project tr ++ equivocators_total_trace_project [x]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
x: transition_item
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [x]
IHtr: pre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project trpre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project [x] = equivocators_total_trace_project [x]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
x: transition_item
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [x]
IHtr: pre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
s0: state
tl: list transition_item
s': state
iom, oom: option message
l: label
Htl: finite_valid_trace_from PreFreeE s0 []
Ht: input_valid_transition PreFreeE l (finite_trace_last s tr, iom) (s0, oom)
H1: s' = finite_trace_last s tr
H3: {| l := l; input := iom; destination := s0; output := oom |} = x
H4: tl = []pre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project [{| l := l; input := iom; destination := s0; output := oom |}] = equivocators_total_trace_project [{| l := l; input := iom; destination := s0; output := oom |}]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: state
iom, oom: option message
l: label
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := l; input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
Ht: input_valid_transition PreFreeE l (finite_trace_last s tr, iom) (s0, oom)pre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project [{| l := l; input := iom; destination := s0; output := oom |}] = equivocators_total_trace_project [{| l := l; input := iom; destination := s0; output := oom |}]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: state
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: state
iom, oom: option message
l: label
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := l; input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
Hv: composite_valid equivocator_IM l (finite_trace_last s tr, iom)
Ht: transition l (finite_trace_last s tr, iom) = (s0, oom)pre_VLSM_projection_trace_project (type PreFreeE) (composite_type IM) equivocators_total_label_project equivocators_total_state_project [{| l := l; input := iom; destination := s0; output := oom |}] = equivocators_total_trace_project [{| l := l; input := iom; destination := s0; output := oom |}]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
sn: vstate (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (Spawn sn); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
Hv: vinitial_state_prop (IM i) sn ∧ iom = None
Ht: (state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_extend (finite_trace_last s tr i) sn), None) = (s0, oom)[] = from_option fst [] match match (if decide (0 = equivocator_state_last (s0 i)) then Some (None, NewMachine sn) else Some (None, Existing 0)) with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := iom; destination := equivocators_state_project (zero_descriptor IM) s0; output := oom |}, equivocator_descriptors_update (zero_descriptor IM) i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (zero_descriptor IM) i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
ji: nat
li: vlabel (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (ContinueWith ji li); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
Hv: match equivocator_state_project (finite_trace_last s tr i) ji with | Some si => vvalid (IM i) li (si, iom) | None => False end
Ht: (let (si', om') := match equivocator_state_project (finite_trace_last s tr i) ji with | Some si => let (si', om') := vtransition (IM i) li (si, iom) in (equivocator_state_update (finite_trace_last s tr i) ji si', om') | None => (finite_trace_last s tr i, iom) end in (state_update equivocator_IM (finite_trace_last s tr) i si', om')) = (s0, oom)match pre_VLSM_projection_transition_item_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project {| l := existT i (ContinueWith ji li); input := iom; destination := s0; output := oom |} with | Some b => [b] | None => [] end = from_option fst [] match match (if decide (ji = 0) then Some ( Some {| l := li; input := iom; destination := equivocator_state_zero (s0 i); output := oom |}, Existing ji) else Some (None, Existing 0)) with | Some (Some item', deqv') => Some ( Some {| l := existT i (l item'); input := iom; destination := equivocators_state_project (zero_descriptor IM) s0; output := oom |}, equivocator_descriptors_update (zero_descriptor IM) i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (zero_descriptor IM) i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
ji: nat
li: vlabel (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (ForkWith ji li); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
Hv: match equivocator_state_project (finite_trace_last s tr i) ji with | Some si => vvalid (IM i) li (si, iom) | None => False end
Ht: (let (si', om') := match equivocator_state_project (finite_trace_last s tr i) ji with | Some si => let (si', om') := vtransition (IM i) li (si, iom) in (equivocator_state_extend (finite_trace_last s tr i) si', om') | None => (finite_trace_last s tr i, iom) end in (state_update equivocator_IM (finite_trace_last s tr) i si', om')) = (s0, oom)[] = from_option fst [] match match (if decide (0 = equivocator_state_last (s0 i)) then Some ( Some {| l := li; input := iom; destination := equivocator_state_zero (s0 i); output := oom |}, Existing ji) else Some (None, Existing 0)) with | Some (Some item', deqv') => Some ( Some {| l := existT i (l item'); input := iom; destination := equivocators_state_project (zero_descriptor IM) s0; output := oom |}, equivocator_descriptors_update (zero_descriptor IM) i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (zero_descriptor IM) i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
sn: vstate (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (Spawn sn); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
Hv: vinitial_state_prop (IM i) sn ∧ iom = None
Ht: (state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_extend (finite_trace_last s tr i) sn), None) = (s0, oom)[] = from_option fst [] match match (if decide (0 = equivocator_state_last (s0 i)) then Some (None, NewMachine sn) else Some (None, Existing 0)) with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := iom; destination := equivocators_state_project (zero_descriptor IM) s0; output := oom |}, equivocator_descriptors_update (zero_descriptor IM) i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (zero_descriptor IM) i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
sn: vstate (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (Spawn sn); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
Hv: vinitial_state_prop (IM i) sn ∧ iom = None[] = from_option fst [] match match (if decide (0 = equivocator_state_last (state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_extend (finite_trace_last s tr i) sn) i)) then Some (None, NewMachine sn) else Some (None, Existing 0)) with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := iom; destination := equivocators_state_project (zero_descriptor IM) (state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_extend (finite_trace_last s tr i) sn)); output := None |}, equivocator_descriptors_update (zero_descriptor IM) i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (zero_descriptor IM) i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
sn: vstate (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (Spawn sn); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
Hv: vinitial_state_prop (IM i) sn ∧ iom = None0 ≠ equivocator_state_last (state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_extend (finite_trace_last s tr i) sn) i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
sn: vstate (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (Spawn sn); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
Hv: vinitial_state_prop (IM i) sn ∧ iom = None0 ≠ equivocator_state_last (equivocator_state_extend (finite_trace_last s tr i) sn)cbv; lia.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
sn: vstate (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (Spawn sn); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
Hv: vinitial_state_prop (IM i) sn ∧ iom = None0 ≠ equivocator_state_n (finite_trace_last s tr i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
ji: nat
li: vlabel (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (ContinueWith ji li); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
Hv: match equivocator_state_project (finite_trace_last s tr i) ji with | Some si => vvalid (IM i) li (si, iom) | None => False end
Ht: (let (si', om') := match equivocator_state_project (finite_trace_last s tr i) ji with | Some si => let (si', om') := vtransition (IM i) li (si, iom) in (equivocator_state_update (finite_trace_last s tr i) ji si', om') | None => (finite_trace_last s tr i, iom) end in (state_update equivocator_IM (finite_trace_last s tr) i si', om')) = (s0, oom)match pre_VLSM_projection_transition_item_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project {| l := existT i (ContinueWith ji li); input := iom; destination := s0; output := oom |} with | Some b => [b] | None => [] end = from_option fst [] match match (if decide (ji = 0) then Some (Some {| l := li; input := iom; destination := equivocator_state_zero (s0 i); output := oom |}, Existing ji) else Some (None, Existing 0)) with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := iom; destination := equivocators_state_project (zero_descriptor IM) s0; output := oom |}, equivocator_descriptors_update (zero_descriptor IM) i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (zero_descriptor IM) i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
ji: nat
li: vlabel (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (ContinueWith ji li); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
s_i: vstate (IM i)
Hv: vvalid (IM i) li (s_i, iom)
Ht: (let (si', om') := let (si', om') := vtransition (IM i) li (s_i, iom) in (equivocator_state_update (finite_trace_last s tr i) ji si', om') in (state_update equivocator_IM (finite_trace_last s tr) i si', om')) = (s0, oom)match pre_VLSM_projection_transition_item_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project {| l := existT i (ContinueWith ji li); input := iom; destination := s0; output := oom |} with | Some b => [b] | None => [] end = from_option fst [] match match (if decide (ji = 0) then Some (Some {| l := li; input := iom; destination := equivocator_state_zero (s0 i); output := oom |}, Existing ji) else Some (None, Existing 0)) with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := iom; destination := equivocators_state_project (zero_descriptor IM) s0; output := oom |}, equivocator_descriptors_update (zero_descriptor IM) i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (zero_descriptor IM) i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
ji: nat
li: vlabel (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (ContinueWith ji li); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
s_i: vstate (IM i)
Hv: vvalid (IM i) li (s_i, iom)
si': state
_om': option message
Ht: (state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_update (finite_trace_last s tr i) ji si'), _om') = (s0, oom)match pre_VLSM_projection_transition_item_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project {| l := existT i (ContinueWith ji li); input := iom; destination := s0; output := oom |} with | Some b => [b] | None => [] end = from_option fst [] match match (if decide (ji = 0) then Some (Some {| l := li; input := iom; destination := equivocator_state_zero (s0 i); output := oom |}, Existing ji) else Some (None, Existing 0)) with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := iom; destination := equivocators_state_project (zero_descriptor IM) s0; output := oom |}, equivocator_descriptors_update (zero_descriptor IM) i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (zero_descriptor IM) i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
ji: nat
li: vlabel (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (ContinueWith ji li); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
s_i: vstate (IM i)
Hv: vvalid (IM i) li (s_i, iom)
si': state
_om': option messagematch pre_VLSM_projection_transition_item_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project {| l := existT i (ContinueWith ji li); input := iom; destination := state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_update (finite_trace_last s tr i) ji si'); output := oom |} with | Some b => [b] | None => [] end = from_option fst [] match match (if decide (ji = 0) then Some (Some {| l := li; input := iom; destination := equivocator_state_zero (state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_update (finite_trace_last s tr i) ji si') i); output := oom |}, Existing ji) else Some (None, Existing 0)) with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := iom; destination := equivocators_state_project (zero_descriptor IM) (state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_update (finite_trace_last s tr i) ji si')); output := oom |}, equivocator_descriptors_update (zero_descriptor IM) i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (zero_descriptor IM) i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
ji: nat
li: vlabel (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (ContinueWith ji li); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
s_i: vstate (IM i)
Hv: vvalid (IM i) li (s_i, iom)
si': state
_om': option messagematch pre_VLSM_projection_transition_item_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project {| l := existT i (ContinueWith ji li); input := iom; destination := state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_update (finite_trace_last s tr i) ji si'); output := oom |} with | Some b => [b] | None => [] end = from_option fst [] match match (if decide (ji = 0) then Some (Some {| l := li; input := iom; destination := equivocator_state_zero (equivocator_state_update (finite_trace_last s tr i) ji si'); output := oom |}, Existing ji) else Some (None, Existing 0)) with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := iom; destination := equivocators_state_project (zero_descriptor IM) (state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_update (finite_trace_last s tr i) ji si')); output := oom |}, equivocator_descriptors_update (zero_descriptor IM) i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (zero_descriptor IM) i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (ContinueWith 0 li); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
s_i: vstate (IM i)
Hv: vvalid (IM i) li (s_i, iom)
si': state
_om': option messagematch pre_VLSM_projection_transition_item_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project {| l := existT i (ContinueWith 0 li); input := iom; destination := state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_update (finite_trace_last s tr i) 0 si'); output := oom |} with | Some b => [b] | None => [] end = from_option fst [] match match (if decide (0 = 0) then Some (Some {| l := li; input := iom; destination := equivocator_state_zero (equivocator_state_update (finite_trace_last s tr i) 0 si'); output := oom |}, Existing 0) else Some (None, Existing 0)) with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := iom; destination := equivocators_state_project (zero_descriptor IM) (state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_update (finite_trace_last s tr i) 0 si')); output := oom |}, equivocator_descriptors_update (zero_descriptor IM) i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (zero_descriptor IM) i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
ji: nat
li: vlabel (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (ContinueWith (S ji) li); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
s_i: vstate (IM i)
Hv: vvalid (IM i) li (s_i, iom)
si': state
_om': option messagematch pre_VLSM_projection_transition_item_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project {| l := existT i (ContinueWith (S ji) li); input := iom; destination := state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_update (finite_trace_last s tr i) (S ji) si'); output := oom |} with | Some b => [b] | None => [] end = from_option fst [] match match (if decide (S ji = 0) then Some ( Some {| l := li; input := iom; destination := equivocator_state_zero (equivocator_state_update (finite_trace_last s tr i) (S ji) si'); output := oom |}, Existing (S ji)) else Some (None, Existing 0)) with | Some (Some item', deqv') => Some ( Some {| l := existT i (l item'); input := iom; destination := equivocators_state_project (zero_descriptor IM) (state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_update (finite_trace_last s tr i) (S ji) si')); output := oom |}, equivocator_descriptors_update (zero_descriptor IM) i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (zero_descriptor IM) i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (ContinueWith 0 li); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
s_i: vstate (IM i)
Hv: vvalid (IM i) li (s_i, iom)
si': state
_om': option messagematch pre_VLSM_projection_transition_item_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project {| l := existT i (ContinueWith 0 li); input := iom; destination := state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_update (finite_trace_last s tr i) 0 si'); output := oom |} with | Some b => [b] | None => [] end = from_option fst [] match match (if decide (0 = 0) then Some (Some {| l := li; input := iom; destination := equivocator_state_zero (equivocator_state_update (finite_trace_last s tr i) 0 si'); output := oom |}, Existing 0) else Some (None, Existing 0)) with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := iom; destination := equivocators_state_project (zero_descriptor IM) (state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_update (finite_trace_last s tr i) 0 si')); output := oom |}, equivocator_descriptors_update (zero_descriptor IM) i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (zero_descriptor IM) i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None endreflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
li: vlabel (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (ContinueWith 0 li); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
s_i: vstate (IM i)
Hv: vvalid (IM i) li (s_i, iom)
si': state
_om': option messagematch pre_VLSM_projection_transition_item_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project {| l := existT i (ContinueWith 0 li); input := iom; destination := state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_update (finite_trace_last s tr i) 0 si'); output := oom |} with | Some b => [b] | None => [] end = from_option fst [] (Some ([{| l := existT i (l {| l := li; input := iom; destination := equivocator_state_zero (equivocator_state_update (finite_trace_last s tr i) 0 si'); output := oom |}); input := iom; destination := equivocators_state_project (zero_descriptor IM) (state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_update (finite_trace_last s tr i) 0 si')); output := oom |}], equivocator_descriptors_update (zero_descriptor IM) i (Existing 0)))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
ji: nat
li: vlabel (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (ContinueWith (S ji) li); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
s_i: vstate (IM i)
Hv: vvalid (IM i) li (s_i, iom)
si': state
_om': option messagematch pre_VLSM_projection_transition_item_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project {| l := existT i (ContinueWith (S ji) li); input := iom; destination := state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_update (finite_trace_last s tr i) (S ji) si'); output := oom |} with | Some b => [b] | None => [] end = from_option fst [] match match (if decide (S ji = 0) then Some (Some {| l := li; input := iom; destination := equivocator_state_zero (equivocator_state_update (finite_trace_last s tr i) (S ji) si'); output := oom |}, Existing (S ji)) else Some (None, Existing 0)) with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := iom; destination := equivocators_state_project (zero_descriptor IM) (state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_update (finite_trace_last s tr i) (S ji) si')); output := oom |}, equivocator_descriptors_update (zero_descriptor IM) i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (zero_descriptor IM) i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None endreflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
ji: nat
li: vlabel (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (ContinueWith (S ji) li); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
s_i: vstate (IM i)
Hv: vvalid (IM i) li (s_i, iom)
si': state
_om': option messagematch pre_VLSM_projection_transition_item_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project {| l := existT i (ContinueWith (S ji) li); input := iom; destination := state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_update (finite_trace_last s tr i) (S ji) si'); output := oom |} with | Some b => [b] | None => [] end = from_option fst [] (Some ([], equivocator_descriptors_update (zero_descriptor IM) i (Existing 0)))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
ji: nat
li: vlabel (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (ForkWith ji li); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
Hv: match equivocator_state_project (finite_trace_last s tr i) ji with | Some si => vvalid (IM i) li (si, iom) | None => False end
Ht: (let (si', om') := match equivocator_state_project (finite_trace_last s tr i) ji with | Some si => let (si', om') := vtransition (IM i) li (si, iom) in (equivocator_state_extend (finite_trace_last s tr i) si', om') | None => (finite_trace_last s tr i, iom) end in (state_update equivocator_IM (finite_trace_last s tr) i si', om')) = (s0, oom)[] = from_option fst [] match match (if decide (0 = equivocator_state_last (s0 i)) then Some (Some {| l := li; input := iom; destination := equivocator_state_zero (s0 i); output := oom |}, Existing ji) else Some (None, Existing 0)) with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := iom; destination := equivocators_state_project (zero_descriptor IM) s0; output := oom |}, equivocator_descriptors_update (zero_descriptor IM) i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (zero_descriptor IM) i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
ji: nat
li: vlabel (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (ForkWith ji li); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
s_i: vstate (IM i)
Hv: vvalid (IM i) li (s_i, iom)
Ht: (let (si', om') := let (si', om') := vtransition (IM i) li (s_i, iom) in (equivocator_state_extend (finite_trace_last s tr i) si', om') in (state_update equivocator_IM (finite_trace_last s tr) i si', om')) = (s0, oom)[] = from_option fst [] match match (if decide (0 = equivocator_state_last (s0 i)) then Some (Some {| l := li; input := iom; destination := equivocator_state_zero (s0 i); output := oom |}, Existing ji) else Some (None, Existing 0)) with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := iom; destination := equivocators_state_project (zero_descriptor IM) s0; output := oom |}, equivocator_descriptors_update (zero_descriptor IM) i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (zero_descriptor IM) i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
ji: nat
li: vlabel (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (ForkWith ji li); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
s_i: vstate (IM i)
Hv: vvalid (IM i) li (s_i, iom)
si': state
_om': option message
Ht: (state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_extend (finite_trace_last s tr i) si'), _om') = (s0, oom)[] = from_option fst [] match match (if decide (0 = equivocator_state_last (s0 i)) then Some (Some {| l := li; input := iom; destination := equivocator_state_zero (s0 i); output := oom |}, Existing ji) else Some (None, Existing 0)) with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := iom; destination := equivocators_state_project (zero_descriptor IM) s0; output := oom |}, equivocator_descriptors_update (zero_descriptor IM) i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (zero_descriptor IM) i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
ji: nat
li: vlabel (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (ForkWith ji li); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
s_i: vstate (IM i)
Hv: vvalid (IM i) li (s_i, iom)
si': state
_om': option message[] = from_option fst [] match match (if decide (0 = equivocator_state_last (state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_extend (finite_trace_last s tr i) si') i)) then Some (Some {| l := li; input := iom; destination := equivocator_state_zero (state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_extend (finite_trace_last s tr i) si') i); output := oom |}, Existing ji) else Some (None, Existing 0)) with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := iom; destination := equivocators_state_project (zero_descriptor IM) (state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_extend (finite_trace_last s tr i) si')); output := oom |}, equivocator_descriptors_update (zero_descriptor IM) i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (zero_descriptor IM) i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
ji: nat
li: vlabel (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (ForkWith ji li); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
s_i: vstate (IM i)
Hv: vvalid (IM i) li (s_i, iom)
si': state
_om': option message[] = from_option fst [] match match (if decide (0 = equivocator_state_last (equivocator_state_extend (finite_trace_last s tr i) si')) then Some (Some {| l := li; input := iom; destination := equivocator_state_zero (equivocator_state_extend (finite_trace_last s tr i) si'); output := oom |}, Existing ji) else Some (None, Existing 0)) with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := iom; destination := equivocators_state_project (zero_descriptor IM) (state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_extend (finite_trace_last s tr i) si')); output := oom |}, equivocator_descriptors_update (zero_descriptor IM) i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (zero_descriptor IM) i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
ji: nat
li: vlabel (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (ForkWith ji li); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
s_i: vstate (IM i)
Hv: vvalid (IM i) li (s_i, iom)
si': state
_om': option message[] = from_option fst [] match match (if decide (0 = equivocator_state_n (finite_trace_last s tr i)) then Some (Some {| l := li; input := iom; destination := equivocator_state_zero (equivocator_state_extend (finite_trace_last s tr i) si'); output := oom |}, Existing ji) else Some (None, Existing 0)) with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := iom; destination := equivocators_state_project (zero_descriptor IM) (state_update equivocator_IM (finite_trace_last s tr) i (equivocator_state_extend (finite_trace_last s tr i) si')); output := oom |}, equivocator_descriptors_update (zero_descriptor IM) i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (zero_descriptor IM) i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None enddestruct ji; reflexivity. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → _composite_state IM
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → _composite_state (Common.equivocator_IM IM) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
s: _composite_state equivocator_IM
tr: list transition_item
Hpre_tr: finite_valid_trace_from PreFreeE s tr
s0: _composite_state equivocator_IM
iom, oom: option message
i: index
ji: nat
li: vlabel (IM i)
Hpre_x: finite_valid_trace_from PreFreeE (finite_trace_last s tr) [{| l := existT i (ForkWith ji li); input := iom; destination := s0; output := oom |}]
IHtr: pre_VLSM_projection_trace_project (composite_type equivocator_IM) (composite_type IM) equivocators_total_label_project equivocators_total_state_project tr = equivocators_total_trace_project tr
Htl: finite_valid_trace_from PreFreeE s0 []
s_i: vstate (IM i)
Hv: vvalid (IM i) li (s_i, iom)
si': state
_om': option message[] = from_option fst [] (Some ([], equivocator_descriptors_update (zero_descriptor IM) i (Existing 0)))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
state_project:= equivocators_total_state_project: vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)∀ (sX : state) (trX : list transition_item), finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) sX trX → state_project (finite_trace_last sX trX) = finite_trace_last (state_project sX) (trace_project trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
state_project:= equivocators_total_state_project: vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)∀ (sX : state) (trX : list transition_item), finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) sX trX → state_project (finite_trace_last sX trX) = finite_trace_last (state_project sX) (trace_project trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
state_project:= equivocators_total_state_project: vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
sX: state
trX: list transition_item
Hpre_tr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) sX trXstate_project (finite_trace_last sX trX) = finite_trace_last (state_project sX) (trace_project trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
state_project:= equivocators_total_state_project: vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
sX: state
trX: list transition_item
Hpre_tr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) sX trX
Htr_pr: equivocators_trace_project (zero_descriptor IM) trX = Some (equivocators_total_trace_project trX, zero_descriptor IM)state_project (finite_trace_last sX trX) = finite_trace_last (state_project sX) (trace_project trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
state_project:= equivocators_total_state_project: vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
sX: state
trX: list transition_item
Hpre_tr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) sX trX
Htr_pr: equivocators_trace_project (zero_descriptor IM) trX = Some (equivocators_total_trace_project trX, zero_descriptor IM)
Hproject: let final_state := finite_trace_last sX trX in proper_equivocator_descriptors (zero_descriptor IM) final_state → finite_valid_trace_from PreFreeE sX trX → ∃ (trX0 : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project (zero_descriptor IM) trX = Some (trX0, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors sX ∧ equivocators_state_project (zero_descriptor IM) (finite_trace_last sX trX) = finite_trace_last (equivocators_state_project initial_descriptors sX) trX0state_project (finite_trace_last sX trX) = finite_trace_last (state_project sX) (trace_project trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
state_project:= equivocators_total_state_project: vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
sX: state
trX: list transition_item
Hpre_tr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) sX trX
Htr_pr: equivocators_trace_project (zero_descriptor IM) trX = Some (equivocators_total_trace_project trX, zero_descriptor IM)
Hproject: proper_equivocator_descriptors (zero_descriptor IM) (finite_trace_last sX trX) → finite_valid_trace_from PreFreeE sX trX → ∃ (trX0 : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project (zero_descriptor IM) trX = Some (trX0, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors sX ∧ equivocators_state_project (zero_descriptor IM) (finite_trace_last sX trX) = finite_trace_last (equivocators_state_project initial_descriptors sX) trX0state_project (finite_trace_last sX trX) = finite_trace_last (state_project sX) (trace_project trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
state_project:= equivocators_total_state_project: vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
sX: state
trX: list transition_item
Hpre_tr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) sX trX
Htr_pr: equivocators_trace_project (zero_descriptor IM) trX = Some (equivocators_total_trace_project trX, zero_descriptor IM)
Hproject: proper_equivocator_descriptors (zero_descriptor IM) (finite_trace_last sX trX) → finite_valid_trace_from PreFreeE sX trX → ∃ (trX0 : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project (zero_descriptor IM) trX = Some (trX0, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors sX ∧ equivocators_state_project (zero_descriptor IM) (finite_trace_last sX trX) = finite_trace_last (equivocators_state_project initial_descriptors sX) trX0proper_equivocator_descriptors (zero_descriptor IM) (finite_trace_last sX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
state_project:= equivocators_total_state_project: vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
sX: state
trX: list transition_item
Hpre_tr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) sX trX
Htr_pr: equivocators_trace_project (zero_descriptor IM) trX = Some (equivocators_total_trace_project trX, zero_descriptor IM)
Hproject: finite_valid_trace_from PreFreeE sX trX → ∃ (trX0 : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project (zero_descriptor IM) trX = Some (trX0, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors sX ∧ equivocators_state_project (zero_descriptor IM) (finite_trace_last sX trX) = finite_trace_last (equivocators_state_project initial_descriptors sX) trX0state_project (finite_trace_last sX trX) = finite_trace_last (state_project sX) (trace_project trX)apply zero_descriptor_proper.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
state_project:= equivocators_total_state_project: vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
sX: state
trX: list transition_item
Hpre_tr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) sX trX
Htr_pr: equivocators_trace_project (zero_descriptor IM) trX = Some (equivocators_total_trace_project trX, zero_descriptor IM)
Hproject: proper_equivocator_descriptors (zero_descriptor IM) (finite_trace_last sX trX) → finite_valid_trace_from PreFreeE sX trX → ∃ (trX0 : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project (zero_descriptor IM) trX = Some (trX0, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors sX ∧ equivocators_state_project (zero_descriptor IM) (finite_trace_last sX trX) = finite_trace_last (equivocators_state_project initial_descriptors sX) trX0proper_equivocator_descriptors (zero_descriptor IM) (finite_trace_last sX trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
state_project:= equivocators_total_state_project: vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
sX: state
trX: list transition_item
Hpre_tr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) sX trX
Htr_pr: equivocators_trace_project (zero_descriptor IM) trX = Some (equivocators_total_trace_project trX, zero_descriptor IM)
Hproject: finite_valid_trace_from PreFreeE sX trX → ∃ (trX0 : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project (zero_descriptor IM) trX = Some (trX0, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors sX ∧ equivocators_state_project (zero_descriptor IM) (finite_trace_last sX trX) = finite_trace_last (equivocators_state_project initial_descriptors sX) trX0state_project (finite_trace_last sX trX) = finite_trace_last (state_project sX) (trace_project trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
state_project:= equivocators_total_state_project: vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
sX: state
trX: list transition_item
Hpre_tr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) sX trX
Htr_pr: equivocators_trace_project (zero_descriptor IM) trX = Some (equivocators_total_trace_project trX, zero_descriptor IM)
Hproject: ∃ (trX0 : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors), equivocators_trace_project (zero_descriptor IM) trX = Some (trX0, initial_descriptors) ∧ proper_equivocator_descriptors initial_descriptors sX ∧ equivocators_state_project (zero_descriptor IM) (finite_trace_last sX trX) = finite_trace_last (equivocators_state_project initial_descriptors sX) trX0state_project (finite_trace_last sX trX) = finite_trace_last (state_project sX) (trace_project trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
state_project:= equivocators_total_state_project: vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
sX: state
trX: list transition_item
Hpre_tr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) sX trX
Htr_pr: equivocators_trace_project (zero_descriptor IM) trX = Some (equivocators_total_trace_project trX, zero_descriptor IM)
_trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
_Htr_pr: equivocators_trace_project (zero_descriptor IM) trX = Some (_trX, initial_descriptors)
Hlst: equivocators_state_project (zero_descriptor IM) (finite_trace_last sX trX) = finite_trace_last (equivocators_state_project initial_descriptors sX) _trXstate_project (finite_trace_last sX trX) = finite_trace_last (state_project sX) (trace_project trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
state_project:= equivocators_total_state_project: vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
sX: state
trX: list transition_item
Hpre_tr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) sX trX
Htr_pr: equivocators_trace_project (zero_descriptor IM) trX = Some (equivocators_total_trace_project trX, zero_descriptor IM)
_trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
_Htr_pr: Some (equivocators_total_trace_project trX, zero_descriptor IM) = Some (_trX, initial_descriptors)
Hlst: equivocators_state_project (zero_descriptor IM) (finite_trace_last sX trX) = finite_trace_last (equivocators_state_project initial_descriptors sX) _trXstate_project (finite_trace_last sX trX) = finite_trace_last (state_project sX) (trace_project trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
state_project:= equivocators_total_state_project: vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
sX: state
trX: list transition_item
Hpre_tr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) sX trX
Htr_pr: equivocators_trace_project (zero_descriptor IM) trX = Some (equivocators_total_trace_project trX, zero_descriptor IM)
_trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors
_Htr_pr: Some (equivocators_total_trace_project trX, zero_descriptor IM) = Some (_trX, initial_descriptors)
Hlst: equivocators_state_project (zero_descriptor IM) (finite_trace_last sX trX) = finite_trace_last (equivocators_state_project initial_descriptors sX) _trX
H2: equivocators_total_trace_project trX = _trX
H3: zero_descriptor IM = initial_descriptorsstate_project (finite_trace_last sX trX) = finite_trace_last (state_project sX) (trace_project trX)assumption. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
X:= FreeE: VLSM message
state_project:= equivocators_total_state_project: vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
trace_project:= equivocators_total_trace_project: list (composite_transition_item equivocator_IM) → list (composite_transition_item IM)
sX: state
trX: list transition_item
Hpre_tr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm X) sX trX
Htr_pr: equivocators_trace_project (zero_descriptor IM) trX = Some (equivocators_total_trace_project trX, zero_descriptor IM)
_Htr_pr: Some (equivocators_total_trace_project trX, zero_descriptor IM) = Some (equivocators_total_trace_project trX, zero_descriptor IM)
Hlst: equivocators_state_project (zero_descriptor IM) (finite_trace_last sX trX) = finite_trace_last (equivocators_state_project (zero_descriptor IM) sX) (equivocators_total_trace_project trX)state_project (finite_trace_last sX trX) = finite_trace_last (state_project sX) (trace_project trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptorsVLSM_partial_projection PreFreeE PreFree (equivocators_partial_trace_project final_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptorsVLSM_partial_projection PreFreeE PreFree (equivocators_partial_trace_project final_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors∀ (sX : vstate PreFreeE) (trX : list (vtransition_item PreFreeE)) (sY : vstate PreFree) (trY : list (vtransition_item PreFree)), equivocators_partial_trace_project final_descriptors (sX, trX) = Some (sY, trY) → ∀ (s'X : state) (preX : list transition_item), finite_trace_last s'X preX = sX → finite_valid_trace_from PreFreeE s'X (preX ++ trX) → ∃ (s'Y : vstate PreFree) (preY : list (vtransition_item PreFree)), equivocators_partial_trace_project final_descriptors (s'X, preX ++ trX) = Some (s'Y, preY ++ trY) ∧ finite_trace_last s'Y preY = sYmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors∀ (sX : vstate PreFreeE) (trX : list (vtransition_item PreFreeE)) (sY : vstate PreFree) (trY : list (vtransition_item PreFree)), equivocators_partial_trace_project final_descriptors (sX, trX) = Some (sY, trY) → finite_valid_trace PreFreeE sX trX → finite_valid_trace PreFree sY trYapply equivocators_partial_trace_project_extends_left.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors∀ (sX : vstate PreFreeE) (trX : list (vtransition_item PreFreeE)) (sY : vstate PreFree) (trY : list (vtransition_item PreFree)), equivocators_partial_trace_project final_descriptors (sX, trX) = Some (sY, trY) → ∀ (s'X : state) (preX : list transition_item), finite_trace_last s'X preX = sX → finite_valid_trace_from PreFreeE s'X (preX ++ trX) → ∃ (s'Y : vstate PreFree) (preY : list (vtransition_item PreFree)), equivocators_partial_trace_project final_descriptors (s'X, preX ++ trX) = Some (s'Y, preY ++ trY) ∧ finite_trace_last s'Y preY = sYmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors∀ (sX : vstate PreFreeE) (trX : list (vtransition_item PreFreeE)) (sY : vstate PreFree) (trY : list (vtransition_item PreFree)), equivocators_partial_trace_project final_descriptors (sX, trX) = Some (sY, trY) → finite_valid_trace PreFreeE sX trX → finite_valid_trace PreFree sY trYmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
s: vstate PreFreeE
tr: list (vtransition_item PreFreeE)
sX: vstate PreFree
trX: list (vtransition_item PreFree)
Hpr_tr: equivocators_partial_trace_project final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace PreFreeE s trfinite_valid_trace PreFree sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
s: vstate PreFreeE
tr: list (vtransition_item PreFreeE)
sX: vstate PreFree
trX: list (vtransition_item PreFree)
Hpr_tr: equivocators_partial_trace_project final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace PreFreeE s tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project initial_descriptors s = sXfinite_valid_trace PreFree sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
s: vstate PreFreeE
tr: list (vtransition_item PreFreeE)
sX: vstate PreFree
trX: list (vtransition_item PreFree)
Hpr_tr: equivocators_partial_trace_project final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace_init_to PreFreeE s (finite_trace_last s tr) tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project initial_descriptors s = sXfinite_valid_trace PreFree sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
s: vstate PreFreeE
tr: list (vtransition_item PreFreeE)
sX: vstate PreFree
trX: list (vtransition_item PreFree)
Hpr_tr: equivocators_partial_trace_project final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace_init_to PreFreeE s (finite_trace_last s tr) tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project initial_descriptors s = sXfinite_valid_trace PreFree sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
s: vstate PreFreeE
tr: list (vtransition_item PreFreeE)
sX: vstate PreFree
trX: list (vtransition_item PreFree)
Hpr_tr: equivocators_partial_trace_project final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace_init_to PreFreeE s (finite_trace_last s tr) tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project initial_descriptors s = sX
_initial_descriptors: equivocator_descriptors
_trX: list (composite_transition_item IM)
_Htr_project: equivocators_trace_project final_descriptors tr = Some (_trX, _initial_descriptors)
HtrX: finite_valid_trace_init_to PreFree (equivocators_state_project _initial_descriptors s) (equivocators_state_project final_descriptors (finite_trace_last s tr)) _trXfinite_valid_trace PreFree sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
s: vstate PreFreeE
tr: list (vtransition_item PreFreeE)
sX: vstate PreFree
trX: list (vtransition_item PreFree)
Hpr_tr: equivocators_partial_trace_project final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace_init_to PreFreeE s (finite_trace_last s tr) tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project initial_descriptors s = sX
_initial_descriptors: equivocator_descriptors
_trX: list (composite_transition_item IM)
_Htr_project: Some (trX, initial_descriptors) = Some (_trX, _initial_descriptors)
HtrX: finite_valid_trace_init_to PreFree (equivocators_state_project _initial_descriptors s) (equivocators_state_project final_descriptors (finite_trace_last s tr)) _trXfinite_valid_trace PreFree sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
s: vstate PreFreeE
tr: list (vtransition_item PreFreeE)
sX: vstate PreFree
trX: list (vtransition_item PreFree)
Hpr_tr: equivocators_partial_trace_project final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace_init_to PreFreeE s (finite_trace_last s tr) tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors
Htr_project: equivocators_trace_project final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project initial_descriptors s = sX
_initial_descriptors: equivocator_descriptors
_trX: list (composite_transition_item IM)
_Htr_project: Some (trX, initial_descriptors) = Some (_trX, _initial_descriptors)
HtrX: finite_valid_trace_init_to PreFree (equivocators_state_project _initial_descriptors s) (equivocators_state_project final_descriptors (finite_trace_last s tr)) _trX
H2: trX = _trX
H3: initial_descriptors = _initial_descriptorsfinite_valid_trace PreFree sX _trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
s: vstate PreFreeE
tr: list (vtransition_item PreFreeE)
_trX: list (composite_transition_item IM)
_initial_descriptors: equivocator_descriptors
Hpr_tr: equivocators_partial_trace_project final_descriptors (s, tr) = Some (equivocators_state_project _initial_descriptors s, _trX)
_Htr_project: Some (_trX, _initial_descriptors) = Some (_trX, _initial_descriptors)
Htr: finite_valid_trace_init_to PreFreeE s (finite_trace_last s tr) tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Htr_project: equivocators_trace_project final_descriptors tr = Some (_trX, _initial_descriptors)
HtrX: finite_valid_trace_init_to PreFree (equivocators_state_project _initial_descriptors s) (equivocators_state_project final_descriptors (finite_trace_last s tr)) _trXfinite_valid_trace PreFree (equivocators_state_project _initial_descriptors s) _trXassumption. Qed. End equivocators_composition_projections. Section equivocators_composition_sub_projections. Context {message : Type} `{finite.Finite index} (IM : index -> VLSM message) `{forall i : index, HasBeenSentCapability (IM i)} (selection : list index) .message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
final_descriptors: equivocator_descriptors
s: vstate PreFreeE
tr: list (vtransition_item PreFreeE)
_trX: list (composite_transition_item IM)
_initial_descriptors: equivocator_descriptors
Hpr_tr: equivocators_partial_trace_project final_descriptors (s, tr) = Some (equivocators_state_project _initial_descriptors s, _trX)
_Htr_project: Some (_trX, _initial_descriptors) = Some (_trX, _initial_descriptors)
Htr: finite_valid_trace_init_to PreFreeE s (finite_trace_last s tr) tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Htr_project: equivocators_trace_project final_descriptors tr = Some (_trX, _initial_descriptors)
HtrX: finite_valid_trace PreFree (equivocators_state_project _initial_descriptors s) _trXfinite_valid_trace PreFree (equivocators_state_project _initial_descriptors s) _trX
A generalization of equivocators_trace_project_finite_trace_projection_list_commute
to projections over a set of indices.
We can project a trace over the composition of equivocators in two ways:
The results below (fist for a single item, then for the full trace say that the
two ways lead to the same result.
- first project to a subset of equivocator components, then project that to the corresponding subset of the composition of the original components
- first project to the composition of original components, then project to a subset of them
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
Hpr_item: equivocators_trace_project IM final_descriptors [item] = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (sub_IM IM selection))
final_sub_descriptors': equivocator_descriptors (sub_IM IM selection)
Hpr_sub_item: equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection [item]) = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
Hpr_item: equivocators_trace_project IM final_descriptors [item] = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (sub_IM IM selection))
final_sub_descriptors': equivocator_descriptors (sub_IM IM selection)
Hpr_sub_item: equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection [item]) = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
Hpr_item: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) [item] = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (sub_IM IM selection))
final_sub_descriptors': equivocator_descriptors (sub_IM IM selection)
Hpr_sub_item: equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection [item]) = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
Hpr_item: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) [item] = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hpr_sub_item: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection [item]) = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
Hpr_item: match equivocators_transition_item_project IM final_descriptors item with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hpr_sub_item: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_sub_descriptors match pre_VLSM_projection_transition_item_project (composite_type (equivocator_IM IM)) (composite_type (sub_IM (equivocator_IM IM) selection)) (composite_label_sub_projection_option (equivocator_IM IM) selection) (composite_state_sub_projection (equivocator_IM IM) selection) item with | Some b => [b] | None => [] end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
Hpr_item_x: equivocators_transition_item_project IM final_descriptors item = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hpr_sub_item: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_sub_descriptors match pre_VLSM_projection_transition_item_project (composite_type (equivocator_IM IM)) (composite_type (sub_IM (equivocator_IM IM) selection)) (composite_label_sub_projection_option (equivocator_IM IM) selection) (composite_state_sub_projection (equivocator_IM IM) selection) item with | Some b => [b] | None => [] end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
Hpr_item_x: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection (equivocator_IM IM) item) (final_descriptors (projT1 (l item))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) deqv') | None => None end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hpr_sub_item: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_sub_descriptors match pre_VLSM_projection_transition_item_project (composite_type (equivocator_IM IM)) (composite_type (sub_IM (equivocator_IM IM) selection)) (composite_label_sub_projection_option (equivocator_IM IM) selection) (composite_state_sub_projection (equivocator_IM IM) selection) item with | Some b => [b] | None => [] end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
Hpr_item_x: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection_from_eq (equivocator_IM IM) item (projT1 (l item)) eq_refl) (final_descriptors (projT1 (l item))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) deqv') | None => None end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hpr_sub_item: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_sub_descriptors match pre_VLSM_projection_transition_item_project (composite_type (equivocator_IM IM)) (composite_type (sub_IM (equivocator_IM IM) selection)) (composite_label_sub_projection_option (equivocator_IM IM) selection) (composite_state_sub_projection (equivocator_IM IM) selection) item with | Some b => [b] | None => [] end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
pr_item_x: option (option (vtransition_item (IM (projT1 (l item)))) * MachineDescriptor (IM (projT1 (l item))))
Heqpr_item_x: pr_item_x = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection_from_eq (equivocator_IM IM) item (projT1 (l item)) eq_refl) (final_descriptors (projT1 (l item)))
Hpr_item_x: match pr_item_x with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) deqv') | None => None end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hpr_sub_item: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_sub_descriptors match pre_VLSM_projection_transition_item_project (composite_type (equivocator_IM IM)) (composite_type (sub_IM (equivocator_IM IM) selection)) (composite_label_sub_projection_option (equivocator_IM IM) selection) (composite_state_sub_projection (equivocator_IM IM) selection) item with | Some b => [b] | None => [] end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection_from_eq (equivocator_IM IM) item (projT1 (l item)) eq_refl) (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hpr_sub_item: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_sub_descriptors match pre_VLSM_projection_transition_item_project (composite_type (equivocator_IM IM)) (composite_type (sub_IM (equivocator_IM IM) selection)) (composite_label_sub_projection_option (equivocator_IM IM) selection) (composite_state_sub_projection (equivocator_IM IM) selection) item with | Some b => [b] | None => [] end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := eq_rect_r (λ n : index, vlabel (equivocator_IM IM n)) (projT2 (l item)) eq_refl; input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hpr_sub_item: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_sub_descriptors match pre_VLSM_projection_transition_item_project (composite_type (equivocator_IM IM)) (composite_type (sub_IM (equivocator_IM IM) selection)) (composite_label_sub_projection_option (equivocator_IM IM) selection) (composite_state_sub_projection (equivocator_IM IM) selection) item with | Some b => [b] | None => [] end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := eq_rect (projT1 (l item)) (λ y : index, vlabel (equivocator_IM IM y)) (projT2 (l item)) (projT1 (l item)) (eq_sym eq_refl); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hpr_sub_item: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_sub_descriptors match pre_VLSM_projection_transition_item_project (composite_type (equivocator_IM IM)) (composite_type (sub_IM (equivocator_IM IM) selection)) (composite_label_sub_projection_option (equivocator_IM IM) selection) (composite_state_sub_projection (equivocator_IM IM) selection) item with | Some b => [b] | None => [] end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hpr_sub_item: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_sub_descriptors match pre_VLSM_projection_transition_item_project (composite_type (equivocator_IM IM)) (composite_type (sub_IM (equivocator_IM IM) selection)) (composite_label_sub_projection_option (equivocator_IM IM) selection) (composite_state_sub_projection (equivocator_IM IM) selection) item with | Some b => [b] | None => [] end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hpr_sub_item: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_sub_descriptors match match match decide (projT1 (l item) ∈ selection) with | left i_in => Some (composite_label_sub_projection (equivocator_IM IM) selection (l item) i_in) | in_right => None end with | Some lY => Some {| l := lY; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |} | None => None end with | Some b => [b] | None => [] end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∈ selection
Hpr_sub_item: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_sub_descriptors [{| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}] = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∉ selection
Hpr_sub_item: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_sub_descriptors [] = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∈ selection
Hpr_sub_item: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_sub_descriptors [{| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}] = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∈ selection
Hpr_sub_item: match equivocators_transition_item_project (λ ei : sub_index selection, IM (` ei)) final_sub_descriptors {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∈ selection
Hpr_sub_item: match equivocators_transition_item_project (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∈ selection
Hpr_sub_item: match match equivocator_vlsm_transition_item_project (IM (` (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})))) (composite_transition_item_projection (equivocator_IM (λ ei : sub_index selection, IM (` ei))) {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}) (final_descriptors (` (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) (l item'); input := input {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}; destination := equivocators_state_project (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (destination {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}); output := output {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |} |}, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∈ selection
project: option (option (vtransition_item (IM (` (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}))))) * MachineDescriptor (IM (` (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})))))
Heqproject: project = equivocator_vlsm_transition_item_project (IM (` (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})))) (composite_transition_item_projection (equivocator_IM (λ ei : sub_index selection, IM (` ei))) {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}) (final_descriptors (` (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}))))
Hpr_sub_item: match match project with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) (l item'); input := input {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}; destination := equivocators_state_project (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (destination {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}); output := output {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |} |}, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∈ selection
project: option (option (vtransition_item (IM (` (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}))))) * MachineDescriptor (IM (` (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})))))
Heqproject: project = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection (equivocator_IM (λ ei : sub_index selection, IM (` ei))) {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}) (final_descriptors (projT1 (l item)))
Hpr_sub_item: match match project with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) (l item'); input := input {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}; destination := equivocators_state_project (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (destination {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}); output := output {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |} |}, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∈ selection
project: option (option (vtransition_item (IM (` (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}))))) * MachineDescriptor (IM (` (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})))))
Heqproject: project = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := eq_rect (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := λ subi : sub_index selection, destination item (` subi); output := output item |})) (λ y : sub_index selection, vlabel (equivocator_IM (λ ei : sub_index selection, IM (` ei)) y)) (projT2 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := λ subi : sub_index selection, destination item (` subi); output := output item |})) (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := λ subi : sub_index selection, destination item (` subi); output := output item |})) (eq_sym eq_refl); input := input {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := λ subi : sub_index selection, destination item (` subi); output := output item |}; destination := destination {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := λ subi : sub_index selection, destination item (` subi); output := output item |} (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := λ subi : sub_index selection, destination item (` subi); output := output item |})); output := output {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := λ subi : sub_index selection, destination item (` subi); output := output item |} |} (final_descriptors (projT1 (l item)))
Hpr_sub_item: match match project with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) (l item'); input := input {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}; destination := equivocators_state_project (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (destination {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}); output := output {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |} |}, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∈ selection
project: option (option (vtransition_item (IM (` (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}))))) * MachineDescriptor (IM (` (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})))))
Heqproject: project = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_sub_item: match match project with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) (l item'); input := input {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}; destination := equivocators_state_project (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (destination {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}); output := output {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |} |}, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∈ selection
project: option (option (vtransition_item (IM (` (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}))))) * MachineDescriptor (IM (` (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})))))
Heqproject: project = Some (oitem', descriptor')
Hpr_sub_item: match match project with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) (l item'); input := input {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}; destination := equivocators_state_project (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (destination {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}); output := output {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |} |}, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∈ selection
project: option (option (vtransition_item (IM (` (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}))))) * MachineDescriptor (IM (` (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})))))
Heqproject: project = Some (oitem', descriptor')
Hpr_sub_item: match match project with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) (l item'); input := input {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}; destination := equivocators_state_project (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (destination {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}); output := output {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |} |}, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∈ selection
Hpr_sub_item: match match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) (l item'); input := input {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}; destination := equivocators_state_project (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (destination {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |}); output := output {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |} |}, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) descriptor') | None => Some (None, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (projT1 (l {| l := composite_label_sub_projection (equivocator_IM IM) selection (l item) Hl; input := input item; destination := composite_state_sub_projection (equivocator_IM IM) selection (destination item); output := output item |})) descriptor') end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∈ selection
Hpr_sub_item: match match oitem' with | Some item' => Some (Some {| l := existT (dexist (projT1 (l item)) Hl) (l item'); input := input item; destination := equivocators_state_project (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (composite_state_sub_projection (equivocator_IM IM) selection (destination item)); output := output item |}, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor') | None => Some (None, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor') end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∈ selection
Hpr_sub_item: match match oitem' with | Some item' => Some (Some {| l := existT (dexist (projT1 (l item)) Hl) (l item'); input := input item; destination := equivocators_state_project (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (composite_state_sub_projection (equivocator_IM IM) selection (destination item)); output := output item |}, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor') | None => Some (None, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor') end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∈ selection
Hpr_sub_item: match match oitem' with | Some item' => Some (Some {| l := existT (dexist (projT1 (l item)) Hl) (l item'); input := input item; destination := equivocators_state_project (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (composite_state_sub_projection (equivocator_IM IM) selection (destination item)); output := output item |}, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor') | None => Some (None, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor') end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (pr_sub_item, final_sub_descriptors')finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∈ selection
Hpr_sub_item: match match oitem' with | Some item' => Some (Some {| l := existT (dexist (projT1 (l item)) Hl) (l item'); input := input item; destination := equivocators_state_project (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (composite_state_sub_projection (equivocator_IM IM) selection (destination item)); output := output item |}, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor') | None => Some (None, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor') end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∈ selection
Hpr_sub_item: match match oitem' with | Some item' => Some (Some {| l := existT (dexist (projT1 (l item)) Hl) (l item'); input := input item; destination := equivocators_state_project (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (composite_state_sub_projection (equivocator_IM IM) selection (destination item)); output := output item |}, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor') | None => Some (None, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor') end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (pr_sub_item, final_sub_descriptors')
i: sub_index selectionfinal_sub_descriptors' i = final_descriptors' (` i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
e: ` i = projT1 (l item)equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor' i = equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor' (` i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
n: ` i ≠ projT1 (l item)equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor' i = equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor' (` i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
e: ` i = projT1 (l item)equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor' i = equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor' (` i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
n: ` i ≠ projT1 (l item)equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor' i = equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor' (` i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
e: ` i = projT1 (l item)equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor' i = equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor' (` i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
e: ` i = projT1 (l item)equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor' i = eq_rect_r (λ i : index, MachineDescriptor (IM i)) descriptor' emessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
e: ` i = projT1 (l item)i = dexist (projT1 (l item)) Hlmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
e: ` i = projT1 (l item)
e1: i = dexist (projT1 (l item)) Hlequivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor' i = eq_rect_r (λ i : index, MachineDescriptor (IM i)) descriptor' emessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
e: ` i = projT1 (l item)i = dexist (projT1 (l item)) Hlassumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
e: ` i = projT1 (l item)` i = ` (dexist (projT1 (l item)) Hl)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
e: ` i = projT1 (l item)
e1: i = dexist (projT1 (l item)) Hlequivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor' i = eq_rect_r (λ i : index, MachineDescriptor (IM i)) descriptor' emessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
e: ` (dexist (projT1 (l item)) Hl) = projT1 (l item)equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor' (dexist (projT1 (l item)) Hl) = eq_rect_r (λ i : index, MachineDescriptor (IM i)) descriptor' emessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
e: ` (dexist (projT1 (l item)) Hl) = projT1 (l item)eq_rect_r (λ i : sub_index selection, MachineDescriptor (IM (` i))) descriptor' eq_refl = eq_rect_r (λ i : index, MachineDescriptor (IM i)) descriptor' emessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
e: projT1 (l item) = projT1 (l item)eq_rect_r (λ i : sub_index selection, MachineDescriptor (IM (` i))) descriptor' eq_refl = eq_rect_r (λ i : index, MachineDescriptor (IM i)) descriptor' emessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
e: projT1 (l item) = projT1 (l item)eq_refl = eassumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
e: projT1 (l item) = projT1 (l item)∀ x y : index, {x = y} + {x ≠ y}message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
n: ` i ≠ projT1 (l item)equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor' i = equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor' (` i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
n: ` i ≠ projT1 (l item)i ≠ dexist (projT1 (l item)) Hlmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
n: ` i ≠ projT1 (l item)
contra: i = dexist (projT1 (l item)) HlFalsemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
n: ` i ≠ projT1 (l item)
contra: i = dexist (projT1 (l item)) Hl` i = projT1 (l item)assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
n: ` i ≠ projT1 (l item)
contra: ` i = ` (dexist (projT1 (l item)) Hl)` i = projT1 (l item)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
e: ` i = projT1 (l item)equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor' i = equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor' (` i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
e: ` i = projT1 (l item)equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor' i = eq_rect_r (λ i : index, MachineDescriptor (IM i)) descriptor' emessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
e: ` i = projT1 (l item)i = dexist (projT1 (l item)) Hlmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
e: ` i = projT1 (l item)
e1: i = dexist (projT1 (l item)) Hlequivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor' i = eq_rect_r (λ i : index, MachineDescriptor (IM i)) descriptor' emessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
e: ` i = projT1 (l item)i = dexist (projT1 (l item)) Hlassumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
e: ` i = projT1 (l item)` i = ` (dexist (projT1 (l item)) Hl)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
e: ` i = projT1 (l item)
e1: i = dexist (projT1 (l item)) Hlequivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor' i = eq_rect_r (λ i : index, MachineDescriptor (IM i)) descriptor' emessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
e: ` (dexist (projT1 (l item)) Hl) = projT1 (l item)equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor' (dexist (projT1 (l item)) Hl) = eq_rect_r (λ i : index, MachineDescriptor (IM i)) descriptor' emessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
e: ` (dexist (projT1 (l item)) Hl) = projT1 (l item)eq_rect_r (λ i : sub_index selection, MachineDescriptor (IM (` i))) descriptor' eq_refl = eq_rect_r (λ i : index, MachineDescriptor (IM i)) descriptor' emessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
e: projT1 (l item) = projT1 (l item)eq_rect_r (λ i : sub_index selection, MachineDescriptor (IM (` i))) descriptor' eq_refl = eq_rect_r (λ i : index, MachineDescriptor (IM i)) descriptor' emessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
e: projT1 (l item) = projT1 (l item)eq_refl = eassumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
e: projT1 (l item) = projT1 (l item)∀ x y : index, {x = y} + {x ≠ y}message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
n: ` i ≠ projT1 (l item)equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor' i = equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor' (` i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
n: ` i ≠ projT1 (l item)i ≠ dexist (projT1 (l item)) Hlmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
n: ` i ≠ projT1 (l item)
contra: i = dexist (projT1 (l item)) HlFalsemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
n: ` i ≠ projT1 (l item)
contra: i = dexist (projT1 (l item)) Hl` i = projT1 (l item)assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selection
i: sub_index selection
n: ` i ≠ projT1 (l item)
contra: ` i = ` (dexist (projT1 (l item)) Hl)` i = projT1 (l item)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∈ selection
Hpr_sub_item: match match oitem' with | Some item' => Some (Some {| l := existT (dexist (projT1 (l item)) Hl) (l item'); input := input item; destination := equivocators_state_project (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (composite_state_sub_projection (equivocator_IM IM) selection (destination item)); output := output item |}, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor') | None => Some (None, equivocator_descriptors_update (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (dexist (projT1 (l item)) Hl) descriptor') end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (pr_sub_item, final_sub_descriptors')finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selectionmatch pre_VLSM_projection_transition_item_project (composite_type IM) (composite_type (sub_IM IM selection)) (composite_label_sub_projection_option IM selection) (composite_state_sub_projection IM selection) {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |} with | Some b => [b] | None => [] end = [{| l := existT (dexist (projT1 (l item)) Hl) (l item'); input := input item; destination := equivocators_state_project (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (composite_state_sub_projection (equivocator_IM IM) selection (destination item)); output := output item |}]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selectionmatch match match decide (projT1 (l {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}) ∈ selection) with | left i_in => Some (composite_label_sub_projection IM selection (l {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}) i_in) | in_right => None end with | Some lY => Some {| l := lY; input := input {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}; destination := composite_state_sub_projection IM selection (destination {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}); output := output {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |} |} | None => None end with | Some b => [b] | None => [] end = [{| l := existT (dexist (projT1 (l item)) Hl) (l item'); input := input item; destination := equivocators_state_project (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (composite_state_sub_projection (equivocator_IM IM) selection (destination item)); output := output item |}]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl: projT1 (l item) ∈ selectionmatch match match decide (projT1 (l item) ∈ selection) with | left i_in => Some (composite_label_sub_projection IM selection (existT (projT1 (l item)) (l item')) i_in) | in_right => None end with | Some lY => Some {| l := lY; input := input item; destination := composite_state_sub_projection IM selection (equivocators_state_project IM final_descriptors (destination item)); output := output item |} | None => None end with | Some b => [b] | None => [] end = [{| l := existT (dexist (projT1 (l item)) Hl) (l item'); input := input item; destination := equivocators_state_project (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (composite_state_sub_projection (equivocator_IM IM) selection (destination item)); output := output item |}]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl, _Hl: projT1 (l item) ∈ selection[{| l := composite_label_sub_projection IM selection (existT (projT1 (l item)) (l item')) _Hl; input := input item; destination := composite_state_sub_projection IM selection (equivocators_state_project IM final_descriptors (destination item)); output := output item |}] = [{| l := existT (dexist (projT1 (l item)) Hl) (l item'); input := input item; destination := equivocators_state_project (λ ei : sub_index selection, IM (` ei)) (λ i : sub_index selection, final_descriptors (` i)) (composite_state_sub_projection (equivocator_IM IM) selection (destination item)); output := output item |}]message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl, _Hl: projT1 (l item) ∈ selectioncomposite_label_sub_projection IM selection (existT (projT1 (l item)) (l item')) _Hl = existT (dexist (projT1 (l item)) Hl) (l item')message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl, _Hl: projT1 (l item) ∈ selectionexistT (dexist (projT1 (existT (projT1 (l item)) (l item'))) _Hl) (projT2 (existT (projT1 (l item)) (l item'))) = existT (dexist (projT1 (l item)) Hl) (l item')reflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Hl, _Hl: projT1 (l item) ∈ selectionl item' = l item'message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∉ selection
Hpr_sub_item: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_sub_descriptors [] = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∉ selection
Hpr_sub_item: Some ([], final_sub_descriptors) = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∉ selection
Hpr_sub_item: Some ([], λ i : sub_index selection, final_descriptors (` i)) = Some (pr_sub_item, final_sub_descriptors')final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = pr_sub_itemmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
pr_sub_item: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
final_sub_descriptors': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hl: projT1 (l item) ∉ selection
Hpr_sub_item: Some ([], λ i : sub_index selection, final_descriptors (` i)) = Some (pr_sub_item, final_sub_descriptors')
H2: [] = pr_sub_item
H3: (λ i : sub_index selection, final_descriptors (` i)) = final_sub_descriptors'(λ i : sub_index selection, final_descriptors (` i)) = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
Hl: projT1 (l item) ∉ selection
Hpr_sub_item: Some ([], λ i : sub_index selection, final_descriptors (` i)) = Some ([], λ i : sub_index selection, final_descriptors (` i))(λ i : sub_index selection, final_descriptors (` i)) = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
Hl: projT1 (l item) ∉ selection(λ i : sub_index selection, final_descriptors (` i)) = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection pr_item = []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
Hl: projT1 (l item) ∉ selection(λ i : sub_index selection, final_descriptors (` i)) = (λ i : sub_index selection, final_descriptors' (` i))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
Hl: projT1 (l item) ∉ selectionfinite_trace_sub_projection IM selection pr_item = []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
Hl: projT1 (l item) ∉ selection(λ i : sub_index selection, final_descriptors (` i)) = (λ i : sub_index selection, final_descriptors' (` i))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
Hl: projT1 (l item) ∉ selection
i: sub_index selectionfinal_descriptors (` i) = final_descriptors' (` i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
Hl: projT1 (l item) ∉ selection
i: sub_index selection` i ≠ projT1 (l item)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
Hl: projT1 (l item) ∉ selection
i: sub_index selection
Hnot: ` i ≠ projT1 (l item)final_descriptors (` i) = final_descriptors' (` i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
Hl: projT1 (l item) ∉ selection
i: sub_index selection` i ≠ projT1 (l item)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
Hl: projT1 (l item) ∉ selection
i: sub_index selection
Hnot: ` i = projT1 (l item)Falsemessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
i: sub_index selection
Hnot: ` i = projT1 (l item)projT1 (l item) ∈ selectionmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
x: index
i: bool_decide (sub_index_prop selection x)
Hnot: ` (x ↾ i) = projT1 (l item)projT1 (l item) ∈ selectionmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
x: index
i: bool_decide (sub_index_prop selection x)
Hnot: x = projT1 (l item)projT1 (l item) ∈ selectionmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
i: bool_decide (sub_index_prop selection (projT1 (l item)))projT1 (l item) ∈ selectionassumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
i: sub_index_prop selection (projT1 (l item))projT1 (l item) ∈ selectiondestruct oitem' as [item'|] ; inversion Hpr_item_x; subst; clear Hpr_item_x ; inversion Hpr_item; subst; clear Hpr_item ; simpl ; rewrite equivocator_descriptors_update_neq; [reflexivity| assumption | reflexivity| assumption].message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
Hl: projT1 (l item) ∉ selection
i: sub_index selection
Hnot: ` i ≠ projT1 (l item)final_descriptors (` i) = final_descriptors' (` i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors', final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
pr_item: list (composite_transition_item IM)
ox: option (composite_transition_item IM)
final': equivocator_descriptors IM
oitem': option (vtransition_item (IM (projT1 (l item))))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (oitem', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hpr_item_x: match oitem' with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') | None => Some (None, equivocator_descriptors_update IM final_descriptors (projT1 (l item)) descriptor') end = Some (ox, final')
Hpr_item: match ox with | Some item' => Some ([item'], final') | None => Some ([], final') end = Some (pr_item, final_descriptors')
Hl: projT1 (l item) ∉ selectionfinite_trace_sub_projection IM selection pr_item = []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (Some item', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hl: projT1 (l item) ∉ selectionmatch pre_VLSM_projection_transition_item_project (composite_type IM) (composite_type (sub_IM IM selection)) (composite_label_sub_projection_option IM selection) (composite_state_sub_projection IM selection) {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |} with | Some b => [b] | None => [] end = []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (Some item', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hl: projT1 (l item) ∉ selectionmatch pre_VLSM_projection_transition_item_project (composite_type IM) (composite_type (sub_IM IM selection)) (composite_label_sub_projection_option IM selection) (composite_state_sub_projection IM selection) {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |} with | Some b => [b] | None => [] end = []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (Some item', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hl: projT1 (l item) ∉ selectionmatch pre_VLSM_projection_transition_item_project (composite_type IM) (composite_type (sub_IM IM selection)) (composite_label_sub_projection_option IM selection) (composite_state_sub_projection IM selection) {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |} with | Some b => [b] | None => [] end = []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (Some item', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hl: projT1 (l item) ∉ selectionmatch match match decide (projT1 (l {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}) ∈ selection) with | left i_in => Some (composite_label_sub_projection IM selection (l {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}) i_in) | in_right => None end with | Some lY => Some {| l := lY; input := input {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}; destination := composite_state_sub_projection IM selection (destination {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |}); output := output {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM final_descriptors (destination item); output := output item |} |} | None => None end with | Some b => [b] | None => [] end = []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (Some item', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hl: projT1 (l item) ∉ selectionmatch match match decide (projT1 (l item) ∈ selection) with | left i_in => Some (composite_label_sub_projection IM selection (existT (projT1 (l item)) (l item')) i_in) | in_right => None end with | Some lY => Some {| l := lY; input := input item; destination := composite_state_sub_projection IM selection (equivocators_state_project IM final_descriptors (destination item)); output := output item |} | None => None end with | Some b => [b] | None => [] end = []reflexivity. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
item: composite_transition_item (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
item': vtransition_item (IM (projT1 (l item)))
descriptor': MachineDescriptor (IM (projT1 (l item)))
Heqpr_item_x: Some (Some item', descriptor') = equivocator_vlsm_transition_item_project (IM (projT1 (l item))) {| l := projT2 (l item); input := input item; destination := destination item (projT1 (l item)); output := output item |} (final_descriptors (projT1 (l item)))
Hl, H1: projT1 (l item) ∉ selection[] = []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
final_descriptors, initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
tr: list (composite_transition_item (equivocator_IM IM))
trX: list (composite_transition_item IM)
tr_subX: list (composite_transition_item (sub_IM IM selection))
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
Hproject_tr: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hproject_sub_tr: equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX, initial_sub_descriptors)initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
final_descriptors, initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
tr: list (composite_transition_item (equivocator_IM IM))
trX: list (composite_transition_item IM)
tr_subX: list (composite_transition_item (sub_IM IM selection))
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
Hproject_tr: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hproject_sub_tr: equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX, initial_sub_descriptors)initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
final_descriptors, initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
tr: list (composite_transition_item (equivocator_IM IM))
trX: list (composite_transition_item IM)
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
Hproject_tr: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)∀ tr_subX : list (composite_transition_item (sub_IM IM selection)), equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX, initial_sub_descriptors) → initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
final_descriptors, initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
tr: list (composite_transition_item (equivocator_IM IM))
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))∀ trX : list (composite_transition_item IM), equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) → ∀ tr_subX : list (composite_transition_item (sub_IM IM selection)), equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX, initial_sub_descriptors) → initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
tr: list (composite_transition_item (equivocator_IM IM))∀ (final_descriptors : equivocator_descriptors IM) (final_sub_descriptors := λ i : sub_index selection, final_descriptors (` i)) (trX : list (composite_transition_item IM)), equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) → ∀ tr_subX : list (composite_transition_item (sub_IM IM selection)), equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX, initial_sub_descriptors) → initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project IM final_descriptors [] = Some (trX, initial_descriptors)
tr_subX: list (composite_transition_item (sub_IM IM selection))
Hproject_sub_tr: equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection []) = Some (tr_subX, initial_sub_descriptors)initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
x: composite_transition_item (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
IHtr: ∀ (final_descriptors : equivocator_descriptors IM) (final_sub_descriptors := λ i : sub_index selection, final_descriptors (` i)) (trX : list (composite_transition_item IM)), equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) → ∀ tr_subX : list (composite_transition_item (sub_IM IM selection)), equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX, initial_sub_descriptors) → initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subX
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project IM final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors)
tr_subX: list (composite_transition_item (sub_IM IM selection))
Hproject_sub_tr: equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection (tr ++ [x])) = Some (tr_subX, initial_sub_descriptors)initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project IM final_descriptors [] = Some (trX, initial_descriptors)
tr_subX: list (composite_transition_item (sub_IM IM selection))
Hproject_sub_tr: equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection []) = Some (tr_subX, initial_sub_descriptors)initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
trX: list (composite_transition_item IM)
Hproject_tr: Some ([], final_descriptors) = Some (trX, initial_descriptors)
tr_subX: list (composite_transition_item (sub_IM IM selection))
Hproject_sub_tr: equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection []) = Some (tr_subX, initial_sub_descriptors)initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
trX: list (composite_transition_item IM)
Hproject_tr: Some ([], final_descriptors) = Some (trX, initial_descriptors)
tr_subX: list (composite_transition_item (sub_IM IM selection))
Hproject_sub_tr: equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection []) = Some (tr_subX, initial_sub_descriptors)
H2: [] = trX
H3: final_descriptors = initial_descriptorsinitial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection [] = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
Hproject_tr: Some ([], initial_descriptors) = Some ([], initial_descriptors)
final_sub_descriptors:= λ i : sub_index selection, initial_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
tr_subX: list (composite_transition_item (sub_IM IM selection))
Hproject_sub_tr: equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection []) = Some (tr_subX, initial_sub_descriptors)initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection [] = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
final_sub_descriptors:= λ i : sub_index selection, initial_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
tr_subX: list (composite_transition_item (sub_IM IM selection))
Hproject_sub_tr: equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection []) = Some (tr_subX, initial_sub_descriptors)initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection [] = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
final_sub_descriptors:= λ i : sub_index selection, initial_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
tr_subX: list (composite_transition_item (sub_IM IM selection))
Hproject_sub_tr: Some ([], final_sub_descriptors) = Some (tr_subX, initial_sub_descriptors)initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection [] = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
final_sub_descriptors:= λ i : sub_index selection, initial_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
tr_subX: list (composite_transition_item (sub_IM IM selection))
Hproject_sub_tr: Some ([], final_sub_descriptors) = Some (tr_subX, initial_sub_descriptors)
H2: [] = tr_subX
H3: final_sub_descriptors = initial_sub_descriptorsfinal_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection [] = []split; reflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, initial_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
Hproject_sub_tr: Some ([], final_sub_descriptors) = Some ([], final_sub_descriptors)final_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection [] = []message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
x: composite_transition_item (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
IHtr: ∀ (final_descriptors : equivocator_descriptors IM) (final_sub_descriptors := λ i : sub_index selection, final_descriptors (` i)) (trX : list (composite_transition_item IM)), equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) → ∀ tr_subX : list (composite_transition_item (sub_IM IM selection)), equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX, initial_sub_descriptors) → initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subX
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
trX: list (composite_transition_item IM)
Hproject_tr: equivocators_trace_project IM final_descriptors (tr ++ [x]) = Some (trX, initial_descriptors)
tr_subX: list (composite_transition_item (sub_IM IM selection))
Hproject_sub_tr: equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection (tr ++ [x])) = Some (tr_subX, initial_sub_descriptors)initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
x: composite_transition_item (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
IHtr: ∀ (final_descriptors : equivocator_descriptors IM) (final_sub_descriptors := λ i : sub_index selection, final_descriptors (` i)) (trX : list (composite_transition_item IM)), equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) → ∀ tr_subX : list (composite_transition_item (sub_IM IM selection)), equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX, initial_sub_descriptors) → initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subX
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
trX: list (composite_transition_item IM)
Hproject_tr: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) (tr ++ [x]) = Some (trX, initial_descriptors)
tr_subX: list (composite_transition_item (sub_IM IM selection))
Hproject_sub_tr: equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection (tr ++ [x])) = Some (tr_subX, initial_sub_descriptors)initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
x: composite_transition_item (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
IHtr: ∀ (final_descriptors : equivocator_descriptors IM) (final_sub_descriptors := λ i : sub_index selection, final_descriptors (` i)) (trX : list (composite_transition_item IM)), equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) → ∀ tr_subX : list (composite_transition_item (sub_IM IM selection)), equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX, initial_sub_descriptors) → initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subX
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
trX: list (composite_transition_item IM)
Hproject_tr: foldr (equivocators_trace_project_folder IM) (foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) [x]) tr = Some (trX, initial_descriptors)
tr_subX: list (composite_transition_item (sub_IM IM selection))
Hproject_sub_tr: equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection (tr ++ [x])) = Some (tr_subX, initial_sub_descriptors)initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
x: composite_transition_item (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
IHtr: ∀ (final_descriptors : equivocator_descriptors IM) (final_sub_descriptors := λ i : sub_index selection, final_descriptors (` i)) (trX : list (composite_transition_item IM)), equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) → ∀ tr_subX : list (composite_transition_item (sub_IM IM selection)), equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX, initial_sub_descriptors) → initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subX
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
trX, projectx: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hproject_x: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
Hproject_tr: foldr (equivocators_trace_project_folder IM) (Some (projectx, final_descriptors')) tr = Some (trX, initial_descriptors)
tr_subX: list (composite_transition_item (sub_IM IM selection))
Hproject_sub_tr: equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection (tr ++ [x])) = Some (tr_subX, initial_sub_descriptors)initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
x: composite_transition_item (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
IHtr: ∀ (final_descriptors : equivocator_descriptors IM) (final_sub_descriptors := λ i : sub_index selection, final_descriptors (` i)) (trX : list (composite_transition_item IM)), equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) → ∀ tr_subX : list (composite_transition_item (sub_IM IM selection)), equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX, initial_sub_descriptors) → initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subX
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
trX, projectx: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hproject_x: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
Hproject_tr: ∃ trX0 : list (composite_transition_item IM), foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors) ∧ trX = trX0 ++ projectx
tr_subX: list (composite_transition_item (sub_IM IM selection))
Hproject_sub_tr: equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection (tr ++ [x])) = Some (tr_subX, initial_sub_descriptors)initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
x: composite_transition_item (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
IHtr: ∀ (final_descriptors : equivocator_descriptors IM) (final_sub_descriptors := λ i : sub_index selection, final_descriptors (` i)) (trX : list (composite_transition_item IM)), equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) → ∀ tr_subX : list (composite_transition_item (sub_IM IM selection)), equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX, initial_sub_descriptors) → initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subX
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
trX, projectx: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hproject_x: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
trX0: list (composite_transition_item IM)
HtrX0: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
tr_subX: list (composite_transition_item (sub_IM IM selection))
Hproject_sub_tr: equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection (tr ++ [x])) = Some (tr_subX, initial_sub_descriptors)initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
x: composite_transition_item (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_descriptors': equivocator_descriptors IM
trX0: list (composite_transition_item IM)
IHtr: ∀ tr_subX : list (composite_transition_item (sub_IM IM selection)), equivocators_trace_project (sub_IM IM selection) (λ i : sub_index selection, final_descriptors' (` i)) (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX, initial_sub_descriptors) → initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX0 = tr_subX
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
tr_subX: list (composite_transition_item (sub_IM IM selection))
Hproject_sub_tr: equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection (tr ++ [x])) = Some (tr_subX, initial_sub_descriptors)initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
x: composite_transition_item (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_descriptors': equivocator_descriptors IM
trX0: list (composite_transition_item IM)
IHtr: ∀ tr_subX : list (composite_transition_item (sub_IM IM selection)), equivocators_trace_project (sub_IM IM selection) (λ i : sub_index selection, final_descriptors' (` i)) (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX, initial_sub_descriptors) → initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX0 = tr_subX
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
tr_subX: list (composite_transition_item (sub_IM IM selection))
Hproject_sub_tr: equivocators_trace_project (sub_IM IM selection) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection tr ++ finite_trace_sub_projection (equivocator_IM IM) selection [x]) = Some (tr_subX, initial_sub_descriptors)initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
x: composite_transition_item (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_descriptors': equivocator_descriptors IM
trX0: list (composite_transition_item IM)
IHtr: ∀ tr_subX : list (composite_transition_item (sub_IM IM selection)), equivocators_trace_project (sub_IM IM selection) (λ i : sub_index selection, final_descriptors' (` i)) (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX, initial_sub_descriptors) → initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX0 = tr_subX
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
tr_subX: list (composite_transition_item (sub_IM IM selection))
Hproject_sub_tr: ∃ (preX sufX : list (composite_transition_item (λ i : sub_index selection, IM (` i)))) (eqv_descriptors' : equivocator_descriptors (λ i : sub_index selection, IM (` i))), equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection [x]) = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project (λ i : sub_index selection, IM (` i)) eqv_descriptors' (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (preX, initial_sub_descriptors) ∧ tr_subX = preX ++ sufXinitial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
x: composite_transition_item (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_descriptors': equivocator_descriptors IM
trX0: list (composite_transition_item IM)
IHtr: ∀ tr_subX : list (composite_transition_item (sub_IM IM selection)), equivocators_trace_project (sub_IM IM selection) (λ i : sub_index selection, final_descriptors' (` i)) (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX, initial_sub_descriptors) → initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX0 = tr_subX
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
tr_subX: list (composite_transition_item (sub_IM IM selection))
tr_subX', project_sub_x: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
final_sub_descriptors': equivocator_descriptors (λ i : sub_index selection, IM (` i))
Hproject_sub_x: equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection [x]) = Some (project_sub_x, final_sub_descriptors')
Htr_subX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_sub_descriptors' (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX', initial_sub_descriptors)
Heqtr_subX: tr_subX = tr_subX' ++ project_sub_xinitial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
x: composite_transition_item (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_descriptors': equivocator_descriptors IM
trX0: list (composite_transition_item IM)
IHtr: ∀ tr_subX : list (composite_transition_item (sub_IM IM selection)), equivocators_trace_project (sub_IM IM selection) (λ i : sub_index selection, final_descriptors' (` i)) (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX, initial_sub_descriptors) → initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX0 = tr_subX
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
tr_subX: list (composite_transition_item (sub_IM IM selection))
tr_subX', project_sub_x: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
final_sub_descriptors': equivocator_descriptors (λ i : sub_index selection, IM (` i))
Hproject_sub_x: equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection [x]) = Some (project_sub_x, final_sub_descriptors')
Htr_subX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_sub_descriptors' (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX', initial_sub_descriptors)
Heqtr_subX: tr_subX = tr_subX' ++ project_sub_x
Hfinal_sub': final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i)) ∧ finite_trace_sub_projection IM selection projectx = project_sub_xinitial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
x: composite_transition_item (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_descriptors': equivocator_descriptors IM
trX0: list (composite_transition_item IM)
IHtr: ∀ tr_subX : list (composite_transition_item (sub_IM IM selection)), equivocators_trace_project (sub_IM IM selection) (λ i : sub_index selection, final_descriptors' (` i)) (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX, initial_sub_descriptors) → initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX0 = tr_subX
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
tr_subX: list (composite_transition_item (sub_IM IM selection))
tr_subX', project_sub_x: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
final_sub_descriptors': equivocator_descriptors (λ i : sub_index selection, IM (` i))
Hproject_sub_x: equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection [x]) = Some (project_sub_x, final_sub_descriptors')
Htr_subX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_sub_descriptors' (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX', initial_sub_descriptors)
Heqtr_subX: tr_subX = tr_subX' ++ project_sub_x
Hfinal_sub': final_sub_descriptors' = (λ i : sub_index selection, final_descriptors' (` i))
Hpr_sub_x: finite_trace_sub_projection IM selection projectx = project_sub_xinitial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
x: composite_transition_item (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_descriptors': equivocator_descriptors IM
trX0: list (composite_transition_item IM)
IHtr: ∀ tr_subX : list (composite_transition_item (sub_IM IM selection)), equivocators_trace_project (sub_IM IM selection) (λ i : sub_index selection, final_descriptors' (` i)) (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX, initial_sub_descriptors) → initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX0 = tr_subX
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
tr_subX: list (composite_transition_item (sub_IM IM selection))
tr_subX', project_sub_x: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
Htr_subX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) (λ i : sub_index selection, final_descriptors' (` i)) (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX', initial_sub_descriptors)
Hproject_sub_x: equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection [x]) = Some (project_sub_x, λ i : sub_index selection, final_descriptors' (` i))
Heqtr_subX: tr_subX = tr_subX' ++ project_sub_x
Hpr_sub_x: finite_trace_sub_projection IM selection projectx = project_sub_xinitial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
x: composite_transition_item (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_descriptors': equivocator_descriptors IM
trX0: list (composite_transition_item IM)
tr_subX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
IHtr: initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX0 = tr_subX'
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
tr_subX: list (composite_transition_item (sub_IM IM selection))
project_sub_x: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
Htr_subX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) (λ i : sub_index selection, final_descriptors' (` i)) (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX', initial_sub_descriptors)
Hproject_sub_x: equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection [x]) = Some (project_sub_x, λ i : sub_index selection, final_descriptors' (` i))
Heqtr_subX: tr_subX = tr_subX' ++ project_sub_x
Hpr_sub_x: finite_trace_sub_projection IM selection projectx = project_sub_xinitial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
x: composite_transition_item (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_descriptors': equivocator_descriptors IM
trX0: list (composite_transition_item IM)
tr_subX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
Heqv_initial: initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i))
Hpr_trXi': finite_trace_sub_projection IM selection trX0 = tr_subX'
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
tr_subX: list (composite_transition_item (sub_IM IM selection))
project_sub_x: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
Htr_subX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) (λ i : sub_index selection, final_descriptors' (` i)) (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX', initial_sub_descriptors)
Hproject_sub_x: equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection [x]) = Some (project_sub_x, λ i : sub_index selection, final_descriptors' (` i))
Heqtr_subX: tr_subX = tr_subX' ++ project_sub_x
Hpr_sub_x: finite_trace_sub_projection IM selection projectx = project_sub_xinitial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i)) ∧ finite_trace_sub_projection IM selection trX = tr_subXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
initial_sub_descriptors: equivocator_descriptors (sub_IM IM selection)
x: composite_transition_item (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_descriptors': equivocator_descriptors IM
trX0: list (composite_transition_item IM)
tr_subX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
Heqv_initial: initial_sub_descriptors = (λ i : sub_index selection, initial_descriptors (` i))
Hpr_trXi': finite_trace_sub_projection IM selection trX0 = tr_subX'
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
trX, projectx: list (composite_transition_item IM)
Hproject_x: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
HtrX: trX = trX0 ++ projectx
tr_subX: list (composite_transition_item (sub_IM IM selection))
project_sub_x: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
Htr_subX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) (λ i : sub_index selection, final_descriptors' (` i)) (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (tr_subX', initial_sub_descriptors)
Hproject_sub_x: equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection [x]) = Some (project_sub_x, λ i : sub_index selection, final_descriptors' (` i))
Heqtr_subX: tr_subX = tr_subX' ++ project_sub_x
Hpr_sub_x: finite_trace_sub_projection IM selection projectx = project_sub_xfinite_trace_sub_projection IM selection trX = tr_subXapply finite_trace_sub_projection_app. Qed. Section seeded_equivocators_valid_trace_project. Context (seed : message -> Prop) (SeededXE := seeded_equivocators_no_equivocation_vlsm IM selection seed) (sub_equivocator_IM := sub_IM (equivocator_IM IM) selection) (SubFreeE := free_composite_vlsm sub_equivocator_IM) (SubPreFreeE := pre_loaded_with_all_messages_vlsm SubFreeE) (sub_IM := sub_IM IM selection) (SubFree := free_composite_vlsm sub_IM) (SeededX := pre_loaded_vlsm SubFree seed) .message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
initial_descriptors: equivocator_descriptors IM
x: composite_transition_item (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_descriptors': equivocator_descriptors IM
trX0: list (composite_transition_item IM)
final_descriptors: equivocator_descriptors IM
final_sub_descriptors:= λ i : sub_index selection, final_descriptors (` i): ∀ i : sub_index selection, MachineDescriptor (IM (` i))
projectx: list (composite_transition_item IM)
Hproject_x: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) [x] = Some (projectx, final_descriptors')
HtrX0: foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors')) tr = Some (trX0, initial_descriptors)
Htr_subX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) (λ i : sub_index selection, final_descriptors' (` i)) (finite_trace_sub_projection (equivocator_IM IM) selection tr) = Some (finite_trace_sub_projection IM selection trX0, λ i : sub_index selection, initial_descriptors (` i))
Hproject_sub_x: equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_sub_descriptors (finite_trace_sub_projection (equivocator_IM IM) selection [x]) = Some (finite_trace_sub_projection IM selection projectx, λ i : sub_index selection, final_descriptors' (` i))finite_trace_sub_projection IM selection (trX0 ++ projectx) = finite_trace_sub_projection IM selection trX0 ++ finite_trace_sub_projection IM selection projectxmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
m: message
Hem: vinitial_message_prop SeededXE mvinitial_message_prop SeededX mmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
m: message
Hem: vinitial_message_prop SeededXE mvinitial_message_prop SeededX mmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
m: message
eqv: sub_index selection
emi: vinitial_message (SubProjectionTraces.sub_IM (equivocator_IM IM) selection eqv)
Hem: ` emi = mvinitial_message_prop SeededX mmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
m: message
Hseed: seed mvinitial_message_prop SeededX mmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
m: message
eqv: sub_index selection
emi: vinitial_message (SubProjectionTraces.sub_IM (equivocator_IM IM) selection eqv)
Hem: ` emi = mvinitial_message_prop SeededX mmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
m: message
eqv: sub_index selection
emi: vinitial_message (SubProjectionTraces.sub_IM (equivocator_IM IM) selection eqv)
Hem: ` emi = minitial_message_prop mmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
m: message
eqv: sub_index selection
emi: vinitial_message (SubProjectionTraces.sub_IM (equivocator_IM IM) selection eqv)
Hem: ` emi = m∃ mi : vinitial_message (sub_IM eqv), ` mi = massumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
m: message
eqv: sub_index selection
emi: vinitial_message (SubProjectionTraces.sub_IM (equivocator_IM IM) selection eqv)
Hem: ` emi = m` emi = mmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
m: message
Hseed: seed mvinitial_message_prop SeededX massumption. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
m: message
Hseed: seed mseed mmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM messageVLSM_incl SeededXE SubPreFreeEapply seeded_no_equivocation_incl_preloaded. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM messageVLSM_incl SeededXE SubPreFreeEmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state∃ (trX : list (composite_transition_item sub_IM)) (initial_descriptors : equivocator_descriptors sub_IM), let isX := equivocators_state_project sub_IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_equivocator_descriptors sub_IM initial_descriptors is ∧ equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project sub_IM final_descriptors final_state = final_stateX ∧ finite_valid_trace SeededX isX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state∃ (trX : list (composite_transition_item sub_IM)) (initial_descriptors : equivocator_descriptors sub_IM), let isX := equivocators_state_project sub_IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_equivocator_descriptors sub_IM initial_descriptors is ∧ equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project sub_IM final_descriptors final_state = final_stateX ∧ finite_valid_trace SeededX isX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_statefinite_valid_trace_init_to SeededXE is final_state trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
Htr_to: finite_valid_trace_init_to SeededXE is final_state tr∃ (trX : list (composite_transition_item sub_IM)) (initial_descriptors : equivocator_descriptors sub_IM), let isX := equivocators_state_project sub_IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_equivocator_descriptors sub_IM initial_descriptors is ∧ equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project sub_IM final_descriptors final_state = final_stateX ∧ finite_valid_trace SeededX isX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_statefinite_valid_trace_init_to SeededXE is final_state trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace_from SeededXE is tr
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_statefinite_valid_trace_init_to SeededXE is final_state trapply finite_valid_trace_from_add_last; [assumption|reflexivity].message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace_from SeededXE is tr
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_statefinite_valid_trace_from_to SeededXE is final_state trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
Htr_to: finite_valid_trace_init_to SeededXE is final_state tr∃ (trX : list (composite_transition_item sub_IM)) (initial_descriptors : equivocator_descriptors sub_IM), let isX := equivocators_state_project sub_IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_equivocator_descriptors sub_IM initial_descriptors is ∧ equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project sub_IM final_descriptors final_state = final_stateX ∧ finite_valid_trace SeededX isX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
Htr_to: finite_valid_trace_init_to SeededXE is final_state trfinite_valid_trace_init_to SubPreFreeE is final_state trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
Htr_to: finite_valid_trace_init_to SeededXE is final_state tr
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is final_state tr∃ (trX : list (composite_transition_item sub_IM)) (initial_descriptors : equivocator_descriptors sub_IM), let isX := equivocators_state_project sub_IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_equivocator_descriptors sub_IM initial_descriptors is ∧ equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project sub_IM final_descriptors final_state = final_stateX ∧ finite_valid_trace SeededX isX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
Htr_to: finite_valid_trace_init_to SeededXE is final_state trfinite_valid_trace_init_to SubPreFreeE is final_state trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_statefinite_valid_trace_init_to SeededXE is final_state tr → finite_valid_trace_init_to SubPreFreeE is final_state trapply seeded_no_equivocation_incl_preloaded.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_stateVLSM_incl_part (VLSMMachine_pre_loaded_with_messages (vmachine (composite_vlsm (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed))) seed) (pre_loaded_with_all_messages_vlsm_machine SubFreeE)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
Htr_to: finite_valid_trace_init_to SeededXE is final_state tr
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is final_state tr∃ (trX : list (composite_transition_item sub_IM)) (initial_descriptors : equivocator_descriptors sub_IM), let isX := equivocators_state_project sub_IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_equivocator_descriptors sub_IM initial_descriptors is ∧ equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project sub_IM final_descriptors final_state = final_stateX ∧ finite_valid_trace SeededX isX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
Htr_to: finite_valid_trace_init_to SeededXE is final_state tr
Hpre_tr_to: ∃ initial_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM initial_descriptors is ∧ (let isX := equivocators_state_project sub_IM initial_descriptors is in let final_stateX := equivocators_state_project sub_IM final_descriptors final_state in ∃ trX : list (composite_transition_item sub_IM), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm sub_IM)) isX final_stateX trX)∃ (trX : list (composite_transition_item sub_IM)) (initial_descriptors : equivocator_descriptors sub_IM), let isX := equivocators_state_project sub_IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_equivocator_descriptors sub_IM initial_descriptors is ∧ equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project sub_IM final_descriptors final_state = final_stateX ∧ finite_valid_trace SeededX isX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
Htr_to: finite_valid_trace_init_to SeededXE is final_state tr
initial_descriptors: equivocator_descriptors sub_IM
Hproper_initial: proper_equivocator_descriptors sub_IM initial_descriptors is
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors)
Hpre_trX: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm sub_IM)) (equivocators_state_project sub_IM initial_descriptors is) (equivocators_state_project sub_IM final_descriptors final_state) trX∃ (trX : list (composite_transition_item sub_IM)) (initial_descriptors : equivocator_descriptors sub_IM), let isX := equivocators_state_project sub_IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_equivocator_descriptors sub_IM initial_descriptors is ∧ equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project sub_IM final_descriptors final_state = final_stateX ∧ finite_valid_trace SeededX isX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
Htr_to: finite_valid_trace_init_to SeededXE is final_state tr
initial_descriptors: equivocator_descriptors sub_IM
Hproper_initial: proper_equivocator_descriptors sub_IM initial_descriptors is
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors)
Hpre_trX: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm sub_IM)) (equivocators_state_project sub_IM initial_descriptors is) (equivocators_state_project sub_IM final_descriptors final_state) trXlet isX := equivocators_state_project sub_IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_equivocator_descriptors sub_IM initial_descriptors is ∧ equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project sub_IM final_descriptors final_state = final_stateX ∧ finite_valid_trace SeededX isX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
Htr_to: finite_valid_trace_init_to SeededXE is final_state tr
initial_descriptors: equivocator_descriptors sub_IM
Hproper_initial: proper_equivocator_descriptors sub_IM initial_descriptors is
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors)
Hpre_trX: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm sub_IM)) (equivocators_state_project sub_IM initial_descriptors is) (equivocators_state_project sub_IM final_descriptors final_state) trXequivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project sub_IM final_descriptors final_state = finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX ∧ finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
Htr_to: finite_valid_trace_init_to SeededXE is final_state tr
initial_descriptors: equivocator_descriptors sub_IM
Hproper_initial: proper_equivocator_descriptors sub_IM initial_descriptors is
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors)
Hpre_trX: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm sub_IM)) (equivocators_state_project sub_IM initial_descriptors is) (equivocators_state_project sub_IM final_descriptors final_state) trXequivocators_state_project sub_IM final_descriptors final_state = finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX ∧ finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
Htr_to: finite_valid_trace_init_to SeededXE is final_state tr
initial_descriptors: equivocator_descriptors sub_IM
Hproper_initial: proper_equivocator_descriptors sub_IM initial_descriptors is
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors)
Hpre_trX: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm sub_IM)) (equivocators_state_project sub_IM initial_descriptors is) (equivocators_state_project sub_IM final_descriptors final_state) trX
Hfinal_stateX: finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX = equivocators_state_project sub_IM final_descriptors final_stateequivocators_state_project sub_IM final_descriptors final_state = finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX ∧ finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
Htr_to: finite_valid_trace_init_to SeededXE is final_state tr
initial_descriptors: equivocator_descriptors sub_IM
Hproper_initial: proper_equivocator_descriptors sub_IM initial_descriptors is
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors)
Hpre_trX: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm sub_IM)) (equivocators_state_project sub_IM initial_descriptors is) (equivocators_state_project sub_IM final_descriptors final_state) trX
Hfinal_stateX: equivocators_state_project sub_IM final_descriptors final_state = finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trXequivocators_state_project sub_IM final_descriptors final_state = finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX ∧ finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
Htr_to: finite_valid_trace_init_to SeededXE is final_state tr
initial_descriptors: equivocator_descriptors sub_IM
Hproper_initial: proper_equivocator_descriptors sub_IM initial_descriptors is
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors)
Hpre_trX: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm sub_IM)) (equivocators_state_project sub_IM initial_descriptors is) (equivocators_state_project sub_IM final_descriptors final_state) trX
Hfinal_stateX: equivocators_state_project sub_IM final_descriptors final_state = finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trXfinite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors)finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors)
len_tr: nat
Heqlen_tr: len_tr = length trfinite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
len_tr: nat
Heqlen_tr: len_tr = length tr∀ trX : list (composite_transition_item sub_IM), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
len_tr: nat
Heqlen_tr: len_tr = length tr∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
len_tr: nat
Heqlen_tr: len_tr = length tr∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
len_tr: nat∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in len_tr = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
len_tr: nat
H: ∀ y : nat, y < len_tr → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
Heqlen_tr: len_tr = length tr
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors)finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
H: ∀ y : nat, y < length tr → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace SeededXE is tr
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors)finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
H: ∀ y : nat, y < length [] → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace SeededXE is []
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors [] = Some (trX, initial_descriptors)
Htr_lst: tr = []finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr, tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace SeededXE is (tr' ++ [lst])
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors)
Htr_lst: tr = tr' ++ [lst]finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
H: ∀ y : nat, y < length [] → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace SeededXE is []
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors [] = Some (trX, initial_descriptors)
Htr_lst: tr = []finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is []
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors [] = Some (trX, initial_descriptors)
Htr_lst: tr = []finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
Htr: finite_valid_trace SeededXE is []
final_state:= finite_trace_last is []: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors [] = Some (trX, initial_descriptors)finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
Htr: finite_valid_trace SeededXE is []
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is [])
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors [] = Some (trX, initial_descriptors)finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
Htr: finite_valid_trace SeededXE is []
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is [])
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: Some ([], final_descriptors) = Some (trX, initial_descriptors)finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
Htr: finite_valid_trace SeededXE is []
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is [])
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: Some ([], final_descriptors) = Some (trX, initial_descriptors)
H1: [] = trX
H2: final_descriptors = initial_descriptorsfinite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) []message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
Htr: finite_valid_trace SeededXE is []
initial_descriptors: equivocator_descriptors sub_IM
Hpr_trX: Some ([], initial_descriptors) = Some ([], initial_descriptors)
Hproper: proper_equivocator_descriptors sub_IM initial_descriptors (finite_trace_last is [])finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) []message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
Htr: finite_valid_trace SeededXE is []
initial_descriptors: equivocator_descriptors sub_IM
Hpr_trX: Some ([], initial_descriptors) = Some ([], initial_descriptors)
Hproper: proper_equivocator_descriptors sub_IM initial_descriptors (finite_trace_last is [])vinitial_state_prop SubFree (equivocators_state_project sub_IM initial_descriptors is) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) []message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
Htr: finite_valid_trace SeededXE is []
initial_descriptors: equivocator_descriptors sub_IM
Hpr_trX: Some ([], initial_descriptors) = Some ([], initial_descriptors)
Hproper: proper_equivocator_descriptors sub_IM initial_descriptors (finite_trace_last is [])vinitial_state_prop SubFree (equivocators_state_project sub_IM initial_descriptors is)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
Htr: finite_valid_trace SeededXE is []
initial_descriptors: equivocator_descriptors sub_IM
Hpr_trX: Some ([], initial_descriptors) = Some ([], initial_descriptors)
Hproper: proper_equivocator_descriptors sub_IM initial_descriptors (finite_trace_last is [])vinitial_state_prop SubFree (equivocators_state_project sub_IM initial_descriptors is) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) []message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
Htr: finite_valid_trace SeededXE is []
initial_descriptors: equivocator_descriptors sub_IM
Hpr_trX: Some ([], initial_descriptors) = Some ([], initial_descriptors)
Hproper: proper_equivocator_descriptors sub_IM initial_descriptors (finite_trace_last is [])
H: vinitial_state_prop SubFree (equivocators_state_project sub_IM initial_descriptors is)finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) []message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
Htr: finite_valid_trace SeededXE is []
initial_descriptors: equivocator_descriptors sub_IM
Hpr_trX: Some ([], initial_descriptors) = Some ([], initial_descriptors)
Hproper: proper_equivocator_descriptors sub_IM initial_descriptors (finite_trace_last is [])
H: vinitial_state_prop SubFree (equivocators_state_project sub_IM initial_descriptors is)finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) []message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
Htr: finite_valid_trace SeededXE is []
initial_descriptors: equivocator_descriptors sub_IM
Hpr_trX: Some ([], initial_descriptors) = Some ([], initial_descriptors)
Hproper: proper_equivocator_descriptors sub_IM initial_descriptors (finite_trace_last is [])
H: vinitial_state_prop SubFree (equivocators_state_project sub_IM initial_descriptors is)valid_state_prop SeededX (equivocators_state_project sub_IM initial_descriptors is)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
Htr: finite_valid_trace SeededXE is []
initial_descriptors: equivocator_descriptors sub_IM
Hpr_trX: Some ([], initial_descriptors) = Some ([], initial_descriptors)
Hproper: proper_equivocator_descriptors sub_IM initial_descriptors (finite_trace_last is [])
H: vinitial_state_prop SubFree (equivocators_state_project sub_IM initial_descriptors is)(∃ is0 : initial_state, equivocators_state_project sub_IM initial_descriptors is = ` is0) ∨ (∃ (l : label) (som : state * option message) (om' : option message), input_valid_transition SeededX l som (equivocators_state_project sub_IM initial_descriptors is, om'))message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
Htr: finite_valid_trace SeededXE is []
initial_descriptors: equivocator_descriptors sub_IM
Hpr_trX: Some ([], initial_descriptors) = Some ([], initial_descriptors)
Hproper: proper_equivocator_descriptors sub_IM initial_descriptors (finite_trace_last is [])
H: vinitial_state_prop SubFree (equivocators_state_project sub_IM initial_descriptors is)∃ is0 : initial_state, equivocators_state_project sub_IM initial_descriptors is = ` is0reflexivity.message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
Htr: finite_valid_trace SeededXE is []
initial_descriptors: equivocator_descriptors sub_IM
Hpr_trX: Some ([], initial_descriptors) = Some ([], initial_descriptors)
Hproper: proper_equivocator_descriptors sub_IM initial_descriptors (finite_trace_last is [])
H: vinitial_state_prop SubFree (equivocators_state_project sub_IM initial_descriptors is)equivocators_state_project sub_IM initial_descriptors is = ` (equivocators_state_project sub_IM initial_descriptors is ↾ H)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
Htr: finite_valid_trace SeededXE is []
initial_descriptors: equivocator_descriptors sub_IM
Hpr_trX: Some ([], initial_descriptors) = Some ([], initial_descriptors)
Hproper: proper_equivocator_descriptors sub_IM initial_descriptors (finite_trace_last is [])vinitial_state_prop SubFree (equivocators_state_project sub_IM initial_descriptors is)apply Htr.message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
Htr: finite_valid_trace SeededXE is []
initial_descriptors: equivocator_descriptors sub_IM
Hpr_trX: Some ([], initial_descriptors) = Some ([], initial_descriptors)
Hproper: proper_equivocator_descriptors sub_IM initial_descriptors (finite_trace_last is [])vinitial_state_prop (free_composite_vlsm (equivocator_IM sub_IM)) ismessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr, tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace SeededXE is (tr' ++ [lst])
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors)
Htr_lst: tr = tr' ++ [lst]finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr, tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace SeededXE is (tr' ++ [lst])
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors)
Htr_lst: tr = tr' ++ [lst]
H': length tr' < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in length tr' = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXfinite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr, tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace SeededXE is (tr' ++ [lst])
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors)
Htr_lst: tr = tr' ++ [lst]
H': length tr' < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in length tr' = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXlength tr' < length (tr' ++ [lst])message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr, tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace SeededXE is (tr' ++ [lst])
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors)
Htr_lst: tr = tr' ++ [lst]
H': ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in length tr' = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXfinite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr, tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace SeededXE is (tr' ++ [lst])
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors)
Htr_lst: tr = tr' ++ [lst]
H': length tr' < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in length tr' = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXlength tr' < length (tr' ++ [lst])message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr, tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace SeededXE is (tr' ++ [lst])
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors)
Htr_lst: tr = tr' ++ [lst]
H': length tr' < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in length tr' = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXlength tr' < length tr' + length [lst]lia.message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr, tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace SeededXE is (tr' ++ [lst])
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors)
Htr_lst: tr = tr' ++ [lst]
H': length tr' < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in length tr' = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXlength tr' < length tr' + 1message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr, tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace SeededXE is (tr' ++ [lst])
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors)
Htr_lst: tr = tr' ++ [lst]
H': ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in length tr' = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXfinite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr, tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is (tr' ++ [lst])
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors)
Htr_lst: tr = tr' ++ [lst]
H': ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in length tr' = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXfinite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr, tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr' ∧ finite_valid_trace_from SeededXE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors)
Htr_lst: tr = tr' ++ [lst]
H': ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in length tr' = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXfinite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr, tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors)
Htr_lst: tr = tr' ++ [lst]
H': ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in length tr' = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXfinite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr, tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors)
Htr_lst: tr = tr' ++ [lst]
H': ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXfinite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr, tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors final_state
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors)
Htr_lst: tr = tr' ++ [lst]
H': ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Hproperx: proper_equivocator_descriptors sub_IM final_descriptors (destination lst) → ∃ (oitem : option (composite_transition_item sub_IM)) (eqv_descriptors' : equivocator_descriptors sub_IM), equivocators_transition_item_project sub_IM final_descriptors lst = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (sub_IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination lst) = destination itemx ∧ eqv_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end ∧ (∀ s : composite_state (equivocator_IM sub_IM), composite_valid (equivocator_IM sub_IM) (l lst) (s, input lst) → composite_transition (equivocator_IM sub_IM) (l lst) (s, input lst) = (destination lst, output lst) → proper_equivocator_descriptors sub_IM eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (l lst)) (eqv_descriptors' (projT1 (l lst))) ∧ s = state_update (equivocator_IM sub_IM) (destination lst) (projT1 (l lst)) (s (projT1 (l lst))) ∧ previous_state_descriptor_prop (sub_IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (s (projT1 (l lst))) (eqv_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM eqv_descriptors' s → composite_valid sub_IM (l itemx) (sx, input itemx) ∧ composite_transition sub_IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination lst) = equivocators_state_project sub_IM eqv_descriptors' s end)finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr, tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr)
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors)
Htr_lst: tr = tr' ++ [lst]
H': ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Hproperx: proper_equivocator_descriptors sub_IM final_descriptors (destination lst) → ∃ (oitem : option (composite_transition_item sub_IM)) (eqv_descriptors' : equivocator_descriptors sub_IM), equivocators_transition_item_project sub_IM final_descriptors lst = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (sub_IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination lst) = destination itemx ∧ eqv_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end ∧ (∀ s : composite_state (equivocator_IM sub_IM), composite_valid (equivocator_IM sub_IM) (l lst) (s, input lst) → composite_transition (equivocator_IM sub_IM) (l lst) (s, input lst) = (destination lst, output lst) → proper_equivocator_descriptors sub_IM eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (l lst)) (eqv_descriptors' (projT1 (l lst))) ∧ s = state_update (equivocator_IM sub_IM) (destination lst) (projT1 (l lst)) (s (projT1 (l lst))) ∧ previous_state_descriptor_prop (sub_IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (s (projT1 (l lst))) (eqv_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM eqv_descriptors' s → composite_valid sub_IM (l itemx) (sx, input itemx) ∧ composite_transition sub_IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination lst) = equivocators_state_project sub_IM eqv_descriptors' s end)finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr, tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is (tr' ++ [lst]))
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors)
Htr_lst: tr = tr' ++ [lst]
H': ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Hproperx: proper_equivocator_descriptors sub_IM final_descriptors (destination lst) → ∃ (oitem : option (composite_transition_item sub_IM)) (eqv_descriptors' : equivocator_descriptors sub_IM), equivocators_transition_item_project sub_IM final_descriptors lst = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (sub_IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination lst) = destination itemx ∧ eqv_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end ∧ (∀ s : composite_state (equivocator_IM sub_IM), composite_valid (equivocator_IM sub_IM) (l lst) (s, input lst) → composite_transition (equivocator_IM sub_IM) (l lst) (s, input lst) = (destination lst, output lst) → proper_equivocator_descriptors sub_IM eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (l lst)) (eqv_descriptors' (projT1 (l lst))) ∧ s = state_update (equivocator_IM sub_IM) (destination lst) (projT1 (l lst)) (s (projT1 (l lst))) ∧ previous_state_descriptor_prop (sub_IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (s (projT1 (l lst))) (eqv_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM eqv_descriptors' s → composite_valid sub_IM (l itemx) (sx, input itemx) ∧ composite_transition sub_IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination lst) = equivocators_state_project sub_IM eqv_descriptors' s end)finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr, tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination lst)
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors)
Htr_lst: tr = tr' ++ [lst]
H': ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Hproperx: proper_equivocator_descriptors sub_IM final_descriptors (destination lst) → ∃ (oitem : option (composite_transition_item sub_IM)) (eqv_descriptors' : equivocator_descriptors sub_IM), equivocators_transition_item_project sub_IM final_descriptors lst = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (sub_IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination lst) = destination itemx ∧ eqv_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end ∧ (∀ s : composite_state (equivocator_IM sub_IM), composite_valid (equivocator_IM sub_IM) (l lst) (s, input lst) → composite_transition (equivocator_IM sub_IM) (l lst) (s, input lst) = (destination lst, output lst) → proper_equivocator_descriptors sub_IM eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (l lst)) (eqv_descriptors' (projT1 (l lst))) ∧ s = state_update (equivocator_IM sub_IM) (destination lst) (projT1 (l lst)) (s (projT1 (l lst))) ∧ previous_state_descriptor_prop (sub_IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (s (projT1 (l lst))) (eqv_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM eqv_descriptors' s → composite_valid sub_IM (l itemx) (sx, input itemx) ∧ composite_transition sub_IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination lst) = equivocators_state_project sub_IM eqv_descriptors' s end)finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr, tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination lst)
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors)
Htr_lst: tr = tr' ++ [lst]
H': ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Hproperx: ∃ (oitem : option (composite_transition_item sub_IM)) (eqv_descriptors' : equivocator_descriptors sub_IM), equivocators_transition_item_project sub_IM final_descriptors lst = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (sub_IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination lst) = destination itemx ∧ eqv_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end ∧ (∀ s : composite_state (equivocator_IM sub_IM), composite_valid (equivocator_IM sub_IM) (l lst) (s, input lst) → composite_transition (equivocator_IM sub_IM) (l lst) (s, input lst) = (destination lst, output lst) → proper_equivocator_descriptors sub_IM eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (l lst)) (eqv_descriptors' (projT1 (l lst))) ∧ s = state_update (equivocator_IM sub_IM) (destination lst) (projT1 (l lst)) (s (projT1 (l lst))) ∧ previous_state_descriptor_prop (sub_IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (s (projT1 (l lst))) (eqv_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM eqv_descriptors' s → composite_valid sub_IM (l itemx) (sx, input itemx) ∧ composite_transition sub_IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination lst) = equivocators_state_project sub_IM eqv_descriptors' s end)finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr, tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination lst)
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors)
Htr_lst: tr = tr' ++ [lst]
H': ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (sub_IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: ∀ s : composite_state (equivocator_IM sub_IM), composite_valid (equivocator_IM sub_IM) (l lst) (s, input lst) → composite_transition (equivocator_IM sub_IM) (l lst) (s, input lst) = (destination lst, output lst) → proper_equivocator_descriptors sub_IM final_descriptors' s ∧ final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ s = state_update (equivocator_IM sub_IM) (destination lst) (projT1 (l lst)) (s (projT1 (l lst))) ∧ previous_state_descriptor_prop (sub_IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (s (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' s → composite_valid sub_IM (l itemx) (sx, input itemx) ∧ composite_transition sub_IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination lst) = equivocators_state_project sub_IM final_descriptors' s endfinite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr, tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination lst)
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: equivocators_trace_project sub_IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors)
Htr_lst: tr = tr' ++ [lst]
H': ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (sub_IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM sub_IM) (l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM sub_IM) (l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM sub_IM) (destination lst) (projT1 (l lst)) (finite_trace_last is tr' (projT1 (l lst))) ∧ previous_state_descriptor_prop (sub_IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (finite_trace_last is tr' (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (l itemx) (sx, input itemx) ∧ composite_transition sub_IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination lst) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') endfinite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr, tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination lst)
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
Hpr_trX: ∃ (preX sufX : list (composite_transition_item (λ i : sub_index selection, IM (` i)))) (eqv_descriptors' : equivocator_descriptors (λ i : sub_index selection, IM (` i))), equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors [lst] = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project (λ i : sub_index selection, IM (` i)) eqv_descriptors' tr' = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX
Htr_lst: tr = tr' ++ [lst]
H': ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (sub_IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM sub_IM) (l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM sub_IM) (l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM sub_IM) (destination lst) (projT1 (l lst)) (finite_trace_last is tr' (projT1 (l lst))) ∧ previous_state_descriptor_prop (sub_IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (finite_trace_last is tr' (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (l itemx) (sx, input itemx) ∧ composite_transition sub_IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination lst) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') endfinite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr, tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination lst)
initial_descriptors: equivocator_descriptors sub_IM
trX: list (composite_transition_item sub_IM)
trX', lstX: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
_final_descriptors': equivocator_descriptors (λ i : sub_index selection, IM (` i))
_Hprojectx: equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors [lst] = Some (lstX, _final_descriptors')
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) _final_descriptors' tr' = Some (trX', initial_descriptors)
Heq_trX: trX = trX' ++ lstX
Htr_lst: tr = tr' ++ [lst]
H': ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (sub_IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM sub_IM) (l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM sub_IM) (l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM sub_IM) (destination lst) (projT1 (l lst)) (finite_trace_last is tr' (projT1 (l lst))) ∧ previous_state_descriptor_prop (sub_IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (finite_trace_last is tr' (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (l itemx) (sx, input itemx) ∧ composite_transition sub_IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination lst) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') endfinite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [lst]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination lst)
initial_descriptors: equivocator_descriptors sub_IM
trX', lstX: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
_final_descriptors': equivocator_descriptors (λ i : sub_index selection, IM (` i))
_Hprojectx: equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors [lst] = Some (lstX, _final_descriptors')
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) _final_descriptors' tr' = Some (trX', initial_descriptors)
H': ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (sub_IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM sub_IM) (l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM sub_IM) (l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM sub_IM) (destination lst) (projT1 (l lst)) (finite_trace_last is tr' (projT1 (l lst))) ∧ previous_state_descriptor_prop (sub_IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (finite_trace_last is tr' (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (l itemx) (sx, input itemx) ∧ composite_transition sub_IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination lst) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') endfinite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) (trX' ++ lstX)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [lst]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination lst)
initial_descriptors: equivocator_descriptors sub_IM
trX', lstX: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
_final_descriptors': equivocator_descriptors (λ i : sub_index selection, IM (` i))
_Hprojectx: match equivocators_transition_item_project (λ i : sub_index selection, IM (` i)) final_descriptors lst with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (lstX, _final_descriptors')
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) _final_descriptors' tr' = Some (trX', initial_descriptors)
H': ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (sub_IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM sub_IM) (l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM sub_IM) (l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM sub_IM) (destination lst) (projT1 (l lst)) (finite_trace_last is tr' (projT1 (l lst))) ∧ previous_state_descriptor_prop (sub_IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (finite_trace_last is tr' (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (l itemx) (sx, input itemx) ∧ composite_transition sub_IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination lst) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') endfinite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) (trX' ++ lstX)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [lst]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination lst)
initial_descriptors: equivocator_descriptors sub_IM
trX', lstX: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
_final_descriptors': equivocator_descriptors (λ i : sub_index selection, IM (` i))
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
_Hprojectx: match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (lstX, _final_descriptors')
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) _final_descriptors' tr' = Some (trX', initial_descriptors)
H': ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (sub_IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM sub_IM) (l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM sub_IM) (l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM sub_IM) (destination lst) (projT1 (l lst)) (finite_trace_last is tr' (projT1 (l lst))) ∧ previous_state_descriptor_prop (sub_IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (finite_trace_last is tr' (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (l itemx) (sx, input itemx) ∧ composite_transition sub_IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination lst) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') endfinite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) (trX' ++ lstX)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [lst]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination lst)
initial_descriptors: equivocator_descriptors sub_IM
trX', lstX: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
_final_descriptors': equivocator_descriptors (λ i : sub_index selection, IM (` i))
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
_Hprojectx: match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (lstX, _final_descriptors')
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) _final_descriptors' tr' = Some (trX', initial_descriptors)
H': ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (sub_IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM sub_IM) (l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM sub_IM) (l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM sub_IM) (destination lst) (projT1 (l lst)) (finite_trace_last is tr' (projT1 (l lst))) ∧ previous_state_descriptor_prop (sub_IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (finite_trace_last is tr' (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (l itemx) (sx, input itemx) ∧ composite_transition sub_IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination lst) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') end
Heq_final_descriptors': final_descriptors' = _final_descriptors'finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) (trX' ++ lstX)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [lst]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination lst)
initial_descriptors: equivocator_descriptors sub_IM
trX', lstX: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
_Hprojectx: match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (lstX, final_descriptors')
H': ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (sub_IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM sub_IM) (l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM sub_IM) (l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM sub_IM) (destination lst) (projT1 (l lst)) (finite_trace_last is tr' (projT1 (l lst))) ∧ previous_state_descriptor_prop (sub_IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (finite_trace_last is tr' (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (l itemx) (sx, input itemx) ∧ composite_transition sub_IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination lst) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') endfinite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) (trX' ++ lstX)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
lst: composite_transition_item sub_equivocator_IM
H: ∀ y : nat, y < length (tr' ++ [lst]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [lst]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination lst)
initial_descriptors: equivocator_descriptors sub_IM
trX', lstX: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
_Hprojectx: match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (lstX, final_descriptors')
H': ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (VLSM.l lst))) (projT2 (VLSM.l lst)), existT (projT1 (VLSM.l lst)) (existing_equivocator_label_extract (sub_IM (projT1 (VLSM.l lst))) (projT2 (VLSM.l lst)) Hex) = VLSM.l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l lst)) = equivocator_label_descriptor (projT2 (VLSM.l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM sub_IM) (VLSM.l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM sub_IM) (VLSM.l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (VLSM.l lst)) (final_descriptors' (projT1 (VLSM.l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM sub_IM) (destination lst) (projT1 (VLSM.l lst)) (finite_trace_last is tr' (projT1 (VLSM.l lst))) ∧ previous_state_descriptor_prop (sub_IM (projT1 (VLSM.l lst))) (final_descriptors (projT1 (VLSM.l lst))) (finite_trace_last is tr' (projT1 (VLSM.l lst))) (final_descriptors' (projT1 (VLSM.l lst))) ∧ match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition sub_IM (VLSM.l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination lst) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') end
s: state
tl: list transition_item
s': state
iom, oom: option message
l: label
Htl: finite_valid_trace_from SeededXE s []
Ht: input_valid_transition SeededXE l (finite_trace_last is tr', iom) (s, oom)
H1: s' = finite_trace_last is tr'
H3: {| l := l; input := iom; destination := s; output := oom |} = lst
H4: tl = []finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) (trX' ++ lstX)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: state
iom, oom: option message
l: label
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
initial_descriptors: equivocator_descriptors sub_IM
trX', lstX: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
_Hprojectx: match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (lstX, final_descriptors')
H': ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Hproperx: composite_valid (equivocator_IM sub_IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (finite_trace_last is tr', input {| l := l; input := iom; destination := s; output := oom |}) → composite_transition (equivocator_IM sub_IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (finite_trace_last is tr', input {| l := l; input := iom; destination := s; output := oom |}) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ finite_trace_last is tr' = state_update (equivocator_IM sub_IM) (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ previous_state_descriptor_prop (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition sub_IM (VLSM.l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Ht: input_valid_transition SeededXE l (finite_trace_last is tr', iom) (s, oom)finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) (trX' ++ lstX)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: state
iom, oom: option message
l: label
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
initial_descriptors: equivocator_descriptors sub_IM
trX', lstX: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
_Hprojectx: match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (lstX, final_descriptors')
H': ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Hproperx: composite_valid (equivocator_IM sub_IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (finite_trace_last is tr', input {| l := l; input := iom; destination := s; output := oom |}) → composite_transition (equivocator_IM sub_IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (finite_trace_last is tr', input {| l := l; input := iom; destination := s; output := oom |}) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ finite_trace_last is tr' = state_update (equivocator_IM sub_IM) (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ previous_state_descriptor_prop (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition sub_IM (VLSM.l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hiom: option_valid_message_prop SeededXE iom
Hv: composite_valid (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) l (finite_trace_last is tr', iom)
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) (trX' ++ lstX)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: state
iom, oom: option message
l: label
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
initial_descriptors: equivocator_descriptors sub_IM
trX', lstX: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
_Hprojectx: match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (lstX, final_descriptors')
H': ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Hproperx: proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ finite_trace_last is tr' = state_update (equivocator_IM sub_IM) (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ previous_state_descriptor_prop (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition sub_IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hiom: option_valid_message_prop SeededXE iom
Hv: composite_valid (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) l (finite_trace_last is tr', iom)
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) (trX' ++ lstX)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: state
iom, oom: option message
l: label
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
initial_descriptors: equivocator_descriptors sub_IM
trX', lstX: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
_Hprojectx: match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (lstX, final_descriptors')
H': ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Hproperx: proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ finite_trace_last is tr' = state_update (equivocator_IM sub_IM) (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ previous_state_descriptor_prop (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition sub_IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hiom: option_valid_message_prop SeededXE iom
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', iom)finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) (trX' ++ lstX)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: state
iom, oom: option message
l: label
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
initial_descriptors: equivocator_descriptors sub_IM
trX', lstX: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
_Hprojectx: match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (lstX, final_descriptors')
H': ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition sub_IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hiom: option_valid_message_prop SeededXE iom
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', iom)finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) (trX' ++ lstX)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: state
iom, oom: option message
l: label
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
initial_descriptors: equivocator_descriptors sub_IM
trX', lstX: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
_Hprojectx: match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (lstX, final_descriptors')
H': finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition sub_IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hiom: option_valid_message_prop SeededXE iom
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', iom)finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) (trX' ++ lstX)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: state
iom, oom: option message
l: label
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
initial_descriptors: equivocator_descriptors sub_IM
trX', lstX: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
_Hprojectx: match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (lstX, final_descriptors')
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: initial_state_prop (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition sub_IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hiom: option_valid_message_prop SeededXE iom
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', iom)finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) (trX' ++ lstX)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: state
iom, oom: option message
l: label
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
initial_descriptors: equivocator_descriptors sub_IM
trX', lstX: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
_Hprojectx: match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (lstX, final_descriptors')
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: initial_state_prop (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition sub_IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hiom: option_valid_message_prop SeededXE iom
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', iom)finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) (trX' ++ lstX)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: state
iom, oom: option message
l: label
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
initial_descriptors: equivocator_descriptors sub_IM
trX', lstX: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
_Hprojectx: match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (lstX, final_descriptors')
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: initial_state_prop (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition sub_IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hiom: option_valid_message_prop SeededXE iom
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', iom)finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX' ∧ finite_valid_trace_from SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') lstXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: state
iom, oom: option message
l: label
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
initial_descriptors: equivocator_descriptors sub_IM
trX', lstX: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
_Hprojectx: match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (lstX, final_descriptors')
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: initial_state_prop (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition sub_IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hiom: option_valid_message_prop SeededXE iom
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', iom)finite_valid_trace_from SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') lstXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: state
iom, oom: option message
l: label
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
initial_descriptors: equivocator_descriptors sub_IM
trX', lstX: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
_Hprojectx: match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (lstX, final_descriptors')
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: initial_state_prop (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition sub_IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hiom: option_valid_message_prop SeededXE iom
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', iom)valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: state
iom, oom: option message
l: label
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
initial_descriptors: equivocator_descriptors sub_IM
trX', lstX: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
_Hprojectx: match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (lstX, final_descriptors')
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: initial_state_prop (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition sub_IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hiom: option_valid_message_prop SeededXE iom
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', iom)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')finite_valid_trace_from SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') lstXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: state
iom, oom: option message
l: label
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
initial_descriptors: equivocator_descriptors sub_IM
trX', lstX: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
_Hprojectx: match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (lstX, final_descriptors')
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: initial_state_prop (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition sub_IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hiom: option_valid_message_prop SeededXE iom
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', iom)valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')assumption.message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: state
iom, oom: option message
l: label
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
initial_descriptors: equivocator_descriptors sub_IM
trX', lstX: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
_Hprojectx: match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (lstX, final_descriptors')
HtrX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
HinitX: initial_state_prop (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition sub_IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hiom: option_valid_message_prop SeededXE iom
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', iom)valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: state
iom, oom: option message
l: label
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
initial_descriptors: equivocator_descriptors sub_IM
trX', lstX: list (composite_transition_item (λ i : sub_index selection, IM (` i)))
oitem: option (composite_transition_item sub_IM)
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
_Hprojectx: match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end = Some (lstX, final_descriptors')
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: initial_state_prop (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: match oitem with | Some itemx => ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition sub_IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') end
Hitemx: match oitem with | Some itemx => (∃ Hex : existing_equivocator_label (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hiom: option_valid_message_prop SeededXE iom
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', iom)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')finite_valid_trace_from SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') lstXmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: state
iom, oom: option message
l: label
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
item: composite_transition_item sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: initial_state_prop (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (VLSM.l item) (sx, input item) ∧ composite_transition sub_IM (VLSM.l item) (sx, input item) = (destination item, output item)
Hitemx: (∃ Hex : existing_equivocator_label (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (sub_IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l item) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input item ∧ output {| l := l; input := iom; destination := s; output := oom |} = output item ∧ equivocators_state_project sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination item ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hiom: option_valid_message_prop SeededXE iom
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', iom)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')finite_valid_trace_from SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') [item]message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: state
iom, oom: option message
l: label
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
item: composite_transition_item sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: initial_state_prop (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (VLSM.l item) (sx, input item) ∧ composite_transition sub_IM (VLSM.l item) (sx, input item) = (destination item, output item)
Hitemx: (∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = VLSM.l item) ∧ iom = input item ∧ oom = output item ∧ equivocators_state_project sub_IM final_descriptors s = destination item ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hiom: option_valid_message_prop SeededXE iom
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', iom)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')finite_valid_trace_from SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') [item]message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: state
iom, oom: option message
l: label
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
item: composite_transition_item sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: initial_state_prop (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: ∀ sx : composite_state sub_IM, sx = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') → composite_valid sub_IM (VLSM.l item) (sx, input item) ∧ composite_transition sub_IM (VLSM.l item) (sx, input item) = (destination item, output item)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project sub_IM final_descriptors s = destination item
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hiom: option_valid_message_prop SeededXE iom
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', iom)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')finite_valid_trace_from SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') [item]message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: state
iom, oom: option message
l: label
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
item: composite_transition_item sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: initial_state_prop (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hx: composite_valid sub_IM (VLSM.l item) (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr'), input item) ∧ composite_transition sub_IM (VLSM.l item) (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr'), input item) = (destination item, output item)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project sub_IM final_descriptors s = destination item
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hiom: option_valid_message_prop SeededXE iom
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', iom)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')finite_valid_trace_from SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') [item]message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: state
iom, oom: option message
l: label
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
item: composite_transition_item sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: initial_state_prop (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hvx: composite_valid sub_IM (VLSM.l item) (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr'), input item)
Htx: composite_transition sub_IM (VLSM.l item) (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr'), input item) = (destination item, output item)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project sub_IM final_descriptors s = destination item
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hiom: option_valid_message_prop SeededXE iom
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', iom)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')finite_valid_trace_from SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') [item]message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: state
iom, oom: option message
l: label
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → let final_state := finite_trace_last is tr in y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors final_state → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: initial_state_prop is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): state
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (VLSM.destination {| l := l; input := iom; destination := s; output := oom |})
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: label
input: option message
destination: state
output: option message
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: initial_state_prop (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})))
Hvx: composite_valid sub_IM (VLSM.l {| l := l0; input := input; destination := destination; output := output |}) (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr'), VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Htx: composite_transition sub_IM (VLSM.l {| l := l0; input := input; destination := destination; output := output |}) (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr'), VLSM.input {| l := l0; input := input; destination := destination; output := output |}) = (VLSM.destination {| l := l0; input := input; destination := destination; output := output |}, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = VLSM.l {| l := l0; input := input; destination := destination; output := output |}
Hinput: iom = VLSM.input {| l := l0; input := input; destination := destination; output := output |}
Houtput: oom = VLSM.output {| l := l0; input := input; destination := destination; output := output |}
Hdestination: equivocators_state_project sub_IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hiom: option_valid_message_prop SeededXE iom
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', iom)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')finite_valid_trace_from SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') [{| l := l0; input := input; destination := destination; output := output |}]message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
iom, oom: option message
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := iom; destination := s; output := oom |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
input: option message
destination: _composite_state sub_IM
output: option message
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update sub_IM (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hinput: iom = input
Houtput: oom = output
Hdestination: equivocators_state_project sub_IM final_descriptors s = destination
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hiom: option_valid_message_prop SeededXE iom
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', iom)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')finite_valid_trace_from SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') [{| l := l0; input := input; destination := destination; output := output |}]message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input, output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update sub_IM (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := input; destination := s; output := output |} = Some (Some {| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', input)
Hiom: option_valid_message_prop SeededXE input
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')finite_valid_trace_from SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') [{| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}]message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input, output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update sub_IM (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := input; destination := s; output := output |} = Some (Some {| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', input)
Hiom: option_valid_message_prop SeededXE input
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')input_valid_transition SeededX l0 (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX', input) (equivocators_state_project sub_IM final_descriptors s, output)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input, output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update sub_IM (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := input; destination := s; output := output |} = Some (Some {| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', input)
Hiom: option_valid_message_prop SeededXE input
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input, output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update sub_IM (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := input; destination := s; output := output |} = Some (Some {| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', input)
Hiom: option_valid_message_prop SeededXE input
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'input_valid_transition SeededX l0 (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX', input) (equivocators_state_project sub_IM final_descriptors s, output)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input, output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update sub_IM (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := input; destination := s; output := output |} = Some (Some {| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', input)
Hiom: option_valid_message_prop SeededXE input
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'apply finite_valid_trace_from_add_last; [assumption|reflexivity].message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input, output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update sub_IM (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := input; destination := s; output := output |} = Some (Some {| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', input)
Hiom: option_valid_message_prop SeededXE input
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')finite_valid_trace_from_to SeededXE is (finite_trace_last is tr') tr'message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input, output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update sub_IM (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := input; destination := s; output := output |} = Some (Some {| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', input)
Hiom: option_valid_message_prop SeededXE input
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'input_valid_transition SeededX l0 (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX', input) (equivocators_state_project sub_IM final_descriptors s, output)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input, output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update sub_IM (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := input; destination := s; output := output |} = Some (Some {| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', input)
Hiom: option_valid_message_prop SeededXE input
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input, output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update sub_IM (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := input; destination := s; output := output |} = Some (Some {| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', input)
Hiom: option_valid_message_prop SeededXE input
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'input_valid_transition SeededX l0 (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX', input) (equivocators_state_project sub_IM final_descriptors s, output)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input, output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update sub_IM (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := input; destination := s; output := output |} = Some (Some {| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', input)
Hiom: option_valid_message_prop SeededXE input
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input, output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update sub_IM (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := input; destination := s; output := output |} = Some (Some {| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', input)
Hiom: option_valid_message_prop SeededXE input
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr' → finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'apply seeded_no_equivocation_incl_preloaded.message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input, output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update sub_IM (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := input; destination := s; output := output |} = Some (Some {| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', input)
Hiom: option_valid_message_prop SeededXE input
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')VLSM_incl_part (VLSMMachine_pre_loaded_with_messages (vmachine (composite_vlsm (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed))) seed) (pre_loaded_with_all_messages_vlsm_machine SubFreeE)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input, output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update sub_IM (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := input; destination := s; output := output |} = Some (Some {| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', input)
Hiom: option_valid_message_prop SeededXE input
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'input_valid_transition SeededX l0 (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX', input) (equivocators_state_project sub_IM final_descriptors s, output)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input, output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update sub_IM (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := input; destination := s; output := output |} = Some (Some {| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', input)
Hiom: option_valid_message_prop SeededXE input
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
Hpr_tr': ∃ initial_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM initial_descriptors is ∧ (let isX := equivocators_state_project sub_IM initial_descriptors is in let final_stateX := equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') in ∃ trX : list (composite_transition_item sub_IM), equivocators_trace_project sub_IM final_descriptors' tr' = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm sub_IM)) isX final_stateX trX)input_valid_transition SeededX l0 (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX', input) (equivocators_state_project sub_IM final_descriptors s, output)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input, output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update sub_IM (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := input; destination := s; output := output |} = Some (Some {| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', input)
Hiom: option_valid_message_prop SeededXE input
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
_initial_descriptors: equivocator_descriptors sub_IM
_trX': list (composite_transition_item sub_IM)
_Hpr_trX': equivocators_trace_project sub_IM final_descriptors' tr' = Some (_trX', _initial_descriptors)
Heq_final_stateX': finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm sub_IM)) (equivocators_state_project sub_IM _initial_descriptors is) (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) _trX'input_valid_transition SeededX l0 (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX', input) (equivocators_state_project sub_IM final_descriptors s, output)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input, output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update sub_IM (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := input; destination := s; output := output |} = Some (Some {| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', input)
Hiom: option_valid_message_prop SeededXE input
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
_initial_descriptors: equivocator_descriptors sub_IM
_trX': list (composite_transition_item sub_IM)
_Hpr_trX': Some (trX', initial_descriptors) = Some (_trX', _initial_descriptors)
Heq_final_stateX': finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm sub_IM)) (equivocators_state_project sub_IM _initial_descriptors is) (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) _trX'input_valid_transition SeededX l0 (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX', input) (equivocators_state_project sub_IM final_descriptors s, output)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input, output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update sub_IM (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := input; destination := s; output := output |} = Some (Some {| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', input)
Hiom: option_valid_message_prop SeededXE input
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
_initial_descriptors: equivocator_descriptors sub_IM
_trX': list (composite_transition_item sub_IM)
_Hpr_trX': Some (trX', initial_descriptors) = Some (_trX', _initial_descriptors)
Heq_final_stateX': finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm sub_IM)) (equivocators_state_project sub_IM _initial_descriptors is) (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) _trX'
H2: trX' = _trX'
H3: initial_descriptors = _initial_descriptorsinput_valid_transition SeededX l0 (finite_trace_last (equivocators_state_project sub_IM _initial_descriptors is) _trX', input) (equivocators_state_project sub_IM final_descriptors s, output)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input, output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update sub_IM (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := input; destination := s; output := output |} = Some (Some {| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', input)
Hiom: option_valid_message_prop SeededXE input
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm sub_IM)) (equivocators_state_project sub_IM initial_descriptors is) (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) trX'input_valid_transition SeededX l0 (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX', input) (equivocators_state_project sub_IM final_descriptors s, output)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input, output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update sub_IM (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := input; destination := s; output := output |} = Some (Some {| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', input)
Hiom: option_valid_message_prop SeededXE input
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')input_valid_transition SeededX l0 (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX', input) (equivocators_state_project sub_IM final_descriptors s, output)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input, output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update sub_IM (equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := input; destination := s; output := output |} = Some (Some {| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', input)
Hiom: option_valid_message_prop SeededXE input
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')input_valid_transition SeededX l0 (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX', input) (equivocators_state_project sub_IM final_descriptors s, output)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input, output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := input; destination := s; output := output |} = Some (Some {| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', input)
Hiom: option_valid_message_prop SeededXE input
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')input_valid_transition SeededX l0 (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX', input) (equivocators_state_project sub_IM final_descriptors s, output)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input, output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := input; destination := s; output := output |} = Some (Some {| l := l0; input := input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', input)
Hiom: option_valid_message_prop SeededXE input
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')option_valid_message_prop SeededX inputmessage, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed l (finite_trace_last is tr', Some input)
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')option_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: composite_no_equivocations_except_from (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) seed l (finite_trace_last is tr', Some input)
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')option_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: composite_no_equivocations_except_from (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) seed l (finite_trace_last is tr', Some input)
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')option_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hc: seed input ∨ composite_has_been_sent (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (finite_trace_last is tr', Some input).1 input
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')option_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: composite_has_been_sent (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (finite_trace_last is tr', Some input).1 input
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')option_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: composite_has_been_sent (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (finite_trace_last is tr', Some input).1 input
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')valid_state_prop SubPreFreeE (finite_trace_last is tr')message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: composite_has_been_sent (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (finite_trace_last is tr', Some input).1 input
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')option_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: composite_has_been_sent (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (finite_trace_last is tr', Some input).1 input
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')valid_state_prop SubPreFreeE (finite_trace_last is tr')assumption.message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: composite_has_been_sent (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (finite_trace_last is tr', Some input).1 input
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: valid_state_prop SubPreFreeE (finite_trace_last is tr')
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')valid_state_prop SubPreFreeE (finite_trace_last is tr')message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: composite_has_been_sent (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (finite_trace_last is tr', Some input).1 input
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')option_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: selected_message_exists_in_all_preloaded_traces (free_composite_vlsm sub_equivocator_IM) (field_selector VLSM.output) (finite_trace_last is tr') input
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')option_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: trace_has_message (field_selector VLSM.output) input tr'
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')option_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: trace_has_message (field_selector VLSM.output) input tr'
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
Hpre_tr: finite_valid_trace SubPreFreeE is tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')option_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
H: ∀ y : nat, y < length (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → y = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: trace_has_message (field_selector VLSM.output) input tr'
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
Hpre_tr: finite_valid_trace SubPreFreeE is tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')
final_descriptors_m, initial_descriptors_m: equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
trXm: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXmoption_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
H: length tr' < length (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → length tr' = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: trace_has_message (field_selector VLSM.output) input tr'
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
Hpre_tr: finite_valid_trace SubPreFreeE is tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')
final_descriptors_m, initial_descriptors_m: equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
trXm: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXmoption_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
H: length tr' < length (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → length tr' = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: trace_has_message (field_selector VLSM.output) input tr'
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
Hpre_tr: finite_valid_trace SubPreFreeE is tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')
final_descriptors_m, initial_descriptors_m: equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
trXm: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXmlength tr' < length (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}])message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: trace_has_message (field_selector VLSM.output) input tr'
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
Hpre_tr: finite_valid_trace SubPreFreeE is tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')
final_descriptors_m, initial_descriptors_m: equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
trXm: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
H: ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → length tr' = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXoption_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
H: length tr' < length (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → length tr' = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: trace_has_message (field_selector VLSM.output) input tr'
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
Hpre_tr: finite_valid_trace SubPreFreeE is tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')
final_descriptors_m, initial_descriptors_m: equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
trXm: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXmlength tr' < length (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}])message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
H: length tr' < length (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → length tr' = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: trace_has_message (field_selector VLSM.output) input tr'
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
Hpre_tr: finite_valid_trace SubPreFreeE is tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')
final_descriptors_m, initial_descriptors_m: equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
trXm: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXmlength tr' < length tr' + length [{| l := l; input := Some input; destination := s; output := output |}]lia.message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
H: length tr' < length (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]) → ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → length tr' = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: trace_has_message (field_selector VLSM.output) input tr'
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
Hpre_tr: finite_valid_trace SubPreFreeE is tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')
final_descriptors_m, initial_descriptors_m: equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
trXm: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXmlength tr' < length tr' + 1message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: trace_has_message (field_selector VLSM.output) input tr'
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
Hpre_tr: finite_valid_trace SubPreFreeE is tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')
final_descriptors_m, initial_descriptors_m: equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
trXm: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
H: ∀ tr : list (composite_transition_item sub_equivocator_IM), finite_valid_trace SeededXE is tr → length tr' = length tr → ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr) → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXoption_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: trace_has_message (field_selector VLSM.output) input tr'
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
Hpre_tr: finite_valid_trace SubPreFreeE is tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')
final_descriptors_m, initial_descriptors_m: equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
trXm: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
H: ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trXoption_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: trace_has_message (field_selector VLSM.output) input tr'
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
Hpre_tr: finite_valid_trace SubPreFreeE is tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')
final_descriptors_m, initial_descriptors_m: equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
trXm: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
H: ∀ final_descriptors : equivocator_descriptors sub_IM, proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last is tr') → ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Hfinal_descriptors_m_proper: proper_equivocator_descriptors sub_IM final_descriptors_m (finite_trace_last is tr')option_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: trace_has_message (field_selector VLSM.output) input tr'
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
Hpre_tr: finite_valid_trace SubPreFreeE is tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')
final_descriptors_m, initial_descriptors_m: equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
trXm: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
H: ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors_m tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Hfinal_descriptors_m_proper: proper_equivocator_descriptors sub_IM final_descriptors_m (finite_trace_last is tr')option_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: trace_has_message (field_selector VLSM.output) input tr'
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
final_descriptors_m: equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hpr_tr': ∃ initial_descriptors : equivocator_descriptors (λ ei : sub_index selection, IM (` ei)), proper_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) initial_descriptors is ∧ (let isX := equivocators_state_project (λ ei : sub_index selection, IM (` ei)) initial_descriptors is in let final_stateX := equivocators_state_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr') in ∃ trX : list (composite_transition_item (λ ei : sub_index selection, IM (` ei))), equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trX, initial_descriptors) ∧ finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (λ ei : sub_index selection, IM (` ei)))) isX final_stateX trX)
Hpre_tr: finite_valid_trace SubPreFreeE is tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')
initial_descriptors_m: equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
trXm: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
H: ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors_m tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Hfinal_descriptors_m_proper: proper_equivocator_descriptors sub_IM final_descriptors_m (finite_trace_last is tr')option_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: trace_has_message (field_selector VLSM.output) input tr'
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
final_descriptors_m, initial_descriptors_m': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hproper_initial_m: proper_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) initial_descriptors_m' is
trXm': list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
Hproject_trXm': equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm', initial_descriptors_m')
HtrXm: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (λ ei : sub_index selection, IM (` ei)))) (equivocators_state_project (λ ei : sub_index selection, IM (` ei)) initial_descriptors_m' is) (equivocators_state_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')) trXm'
Hpre_tr: finite_valid_trace SubPreFreeE is tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')
initial_descriptors_m: equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
trXm: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
H: ∀ (initial_descriptors : equivocator_descriptors sub_IM) (trX : list (composite_transition_item sub_IM)), equivocators_trace_project sub_IM final_descriptors_m tr' = Some (trX, initial_descriptors) → finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors is) trX
Hfinal_descriptors_m_proper: proper_equivocator_descriptors sub_IM final_descriptors_m (finite_trace_last is tr')option_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: trace_has_message (field_selector VLSM.output) input tr'
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
final_descriptors_m, initial_descriptors_m': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hproper_initial_m: proper_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) initial_descriptors_m' is
trXm': list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
Hproject_trXm': equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm', initial_descriptors_m')
HtrXm: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (λ ei : sub_index selection, IM (` ei)))) (equivocators_state_project (λ ei : sub_index selection, IM (` ei)) initial_descriptors_m' is) (equivocators_state_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')) trXm'
Hpre_tr: finite_valid_trace SubPreFreeE is tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')
initial_descriptors_m: equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
trXm: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
H: finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors_m' is) trXm'
Hfinal_descriptors_m_proper: proper_equivocator_descriptors sub_IM final_descriptors_m (finite_trace_last is tr')option_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: trace_has_message (field_selector VLSM.output) input tr'
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
final_descriptors_m, initial_descriptors_m': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hproper_initial_m: proper_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) initial_descriptors_m' is
trXm': list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
Hproject_trXm': equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm', initial_descriptors_m')
HtrXm: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (λ ei : sub_index selection, IM (` ei)))) (equivocators_state_project (λ ei : sub_index selection, IM (` ei)) initial_descriptors_m' is) (equivocators_state_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')) trXm'
Hpre_tr: finite_valid_trace SubPreFreeE is tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')
initial_descriptors_m: equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
trXm: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
H: finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors_m' is) trXm'
Hfinal_descriptors_m_proper: proper_equivocator_descriptors sub_IM final_descriptors_m (finite_trace_last is tr')option_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: trace_has_message (field_selector VLSM.output) input tr'
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
final_descriptors_m, initial_descriptors_m': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hproper_initial_m: proper_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) initial_descriptors_m' is
trXm': list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
initial_descriptors_m: equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
trXm: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
Hproject_trXm': Some (trXm, initial_descriptors_m) = Some (trXm', initial_descriptors_m')
HtrXm: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (λ ei : sub_index selection, IM (` ei)))) (equivocators_state_project (λ ei : sub_index selection, IM (` ei)) initial_descriptors_m' is) (equivocators_state_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')) trXm'
Hpre_tr: finite_valid_trace SubPreFreeE is tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
H: finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors_m' is) trXm'
Hfinal_descriptors_m_proper: proper_equivocator_descriptors sub_IM final_descriptors_m (finite_trace_last is tr')option_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: trace_has_message (field_selector VLSM.output) input tr'
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
final_descriptors_m, initial_descriptors_m': equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hproper_initial_m: proper_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) initial_descriptors_m' is
trXm': list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
initial_descriptors_m: equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
trXm: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
Hproject_trXm': Some (trXm, initial_descriptors_m) = Some (trXm', initial_descriptors_m')
HtrXm: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (λ ei : sub_index selection, IM (` ei)))) (equivocators_state_project (λ ei : sub_index selection, IM (` ei)) initial_descriptors_m' is) (equivocators_state_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')) trXm'
Hpre_tr: finite_valid_trace SubPreFreeE is tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
H: finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors_m' is) trXm'
Hfinal_descriptors_m_proper: proper_equivocator_descriptors sub_IM final_descriptors_m (finite_trace_last is tr')
H2: trXm = trXm'
H3: initial_descriptors_m = initial_descriptors_m'option_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: trace_has_message (field_selector VLSM.output) input tr'
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hproper_initial_m: proper_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) initial_descriptors_m is
trXm: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
Hproject_trXm': Some (trXm, initial_descriptors_m) = Some (trXm, initial_descriptors_m)
HtrXm: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (λ ei : sub_index selection, IM (` ei)))) (equivocators_state_project (λ ei : sub_index selection, IM (` ei)) initial_descriptors_m is) (equivocators_state_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')) trXm
Hpre_tr: finite_valid_trace SubPreFreeE is tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
H: finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors_m is) trXm
Hfinal_descriptors_m_proper: proper_equivocator_descriptors sub_IM final_descriptors_m (finite_trace_last is tr')option_valid_message_prop SeededX (Some input)message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: trace_has_message (field_selector VLSM.output) input tr'
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hproper_initial_m: proper_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) initial_descriptors_m is
trXm: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
HtrXm: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (λ ei : sub_index selection, IM (` ei)))) (equivocators_state_project (λ ei : sub_index selection, IM (` ei)) initial_descriptors_m is) (equivocators_state_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')) trXm
Hpre_tr: finite_valid_trace SubPreFreeE is tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
H: finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors_m is) trXm
Hfinal_descriptors_m_proper: proper_equivocator_descriptors sub_IM final_descriptors_m (finite_trace_last is tr')option_valid_message_prop SeededX (Some input)apply (valid_trace_output_is_valid _ _ _ (proj1 H) _ Hex). Qed.message, index: Type
EqDecision0: EqDecision index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
is: composite_state sub_equivocator_IM
tr': list (composite_transition_item sub_equivocator_IM)
s: _composite_state (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
l: _composite_label (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)
input: message
output: option message
Htr: finite_valid_trace_from SeededXE is tr'
Hlst: finite_valid_trace_from SeededXE (finite_trace_last is tr') [{| l := l; input := Some input; destination := s; output := output |}]
Hinit: composite_initial_state_prop (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state sub_equivocator_IM
final_descriptors: equivocator_descriptors sub_IM
Hproper: proper_equivocator_descriptors sub_IM final_descriptors s
initial_descriptors: equivocator_descriptors sub_IM
trX': list (composite_transition_item (λ i : sub_index selection, IM (` i)))
l0: _composite_label sub_IM
final_descriptors': equivocator_descriptors sub_IM
Hpr_trX': equivocators_trace_project (λ i : sub_index selection, IM (` i)) final_descriptors' tr' = Some (trX', initial_descriptors)
HtrX': finite_valid_trace_from SeededX (equivocators_state_project sub_IM initial_descriptors is) trX'
HinitX: composite_initial_state_prop sub_IM (equivocators_state_project sub_IM initial_descriptors is)
Hproper': proper_equivocator_descriptors sub_IM final_descriptors' (finite_trace_last is tr')
Heq_final_descriptors': final_descriptors' = equivocator_descriptors_update sub_IM final_descriptors (projT1 l) (final_descriptors' (projT1 l))
Hvx: let (i, li) := l0 in vvalid (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (sub_IM i) li (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' i, Some input) in (state_update sub_IM (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX') i si', om')) = (equivocators_state_project sub_IM final_descriptors s, output)
Hl: ∃ Hex : existing_equivocator_label (sub_IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (sub_IM (projT1 l)) (projT2 l) Hex) = l0
Hprojectx: equivocators_transition_item_project sub_IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := equivocators_state_project sub_IM final_descriptors s; output := output |}, final_descriptors')
Htl: finite_valid_trace_from SeededXE s []
Hs: valid_state_prop SeededXE (finite_trace_last is tr')
Hno_equiv: trace_has_message (field_selector VLSM.output) input tr'
Hiom: option_valid_message_prop SeededXE (Some input)
Hlst_trX': valid_state_prop SeededX (finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX')
Htr_to: finite_valid_trace_init_to SeededXE is (finite_trace_last is tr') tr'
Hpre_tr_to: finite_valid_trace_init_to SubPreFreeE is (finite_trace_last is tr') tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors (λ ei : sub_index selection, IM (` ei))
Hproper_initial_m: proper_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) initial_descriptors_m is
trXm: list (composite_transition_item (λ ei : sub_index selection, IM (` ei)))
HtrXm: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (λ ei : sub_index selection, IM (` ei)))) (equivocators_state_project (λ ei : sub_index selection, IM (` ei)) initial_descriptors_m is) (equivocators_state_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')) trXm
Hpre_tr: finite_valid_trace SubPreFreeE is tr'
_Hpr_trX': Some (trX', initial_descriptors) = Some (trX', initial_descriptors)
Heq_final_stateX': finite_trace_last (equivocators_state_project sub_IM initial_descriptors is) trX' = equivocators_state_project sub_IM final_descriptors' (finite_trace_last is tr')
Hs_free: valid_state_prop SubPreFreeE (finite_trace_last is tr')
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors (λ ei : sub_index selection, IM (` ei)) final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project (λ ei : sub_index selection, IM (` ei)) final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
H: finite_valid_trace SeededX (equivocators_state_project sub_IM initial_descriptors_m is) trXm
Hfinal_descriptors_m_proper: proper_equivocator_descriptors sub_IM final_descriptors_m (finite_trace_last is tr')valid_message_prop SeededX inputmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM messageVLSM_incl SeededXE SubPreFreeEmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM messageVLSM_incl SeededXE SubPreFreeEmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM messagestrong_incl_initial_state_preservation (VLSMMachine_pre_loaded_with_messages (vmachine (composite_vlsm (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed))) seed) (pre_loaded_with_all_messages_vlsm_machine SubFreeE)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM messagestrong_incl_initial_message_preservation (VLSMMachine_pre_loaded_with_messages (vmachine (composite_vlsm (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed))) seed) (pre_loaded_with_all_messages_vlsm_machine SubFreeE)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM messagestrong_incl_valid_preservation (VLSMMachine_pre_loaded_with_messages (vmachine (composite_vlsm (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed))) seed) (pre_loaded_with_all_messages_vlsm_machine SubFreeE)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM messagestrong_incl_transition_preservation (VLSMMachine_pre_loaded_with_messages (vmachine (composite_vlsm (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed))) seed) (pre_loaded_with_all_messages_vlsm_machine SubFreeE)intros l s om [Hv _]; split; [assumption | exact I]. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM messagestrong_incl_valid_preservation (VLSMMachine_pre_loaded_with_messages (vmachine (composite_vlsm (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed))) seed) (pre_loaded_with_all_messages_vlsm_machine SubFreeE)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM messageVLSM_incl (pre_loaded_with_all_messages_vlsm SeededXE) SubPreFreeEmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM messageVLSM_incl (pre_loaded_with_all_messages_vlsm SeededXE) SubPreFreeEmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM messagestrong_incl_initial_state_preservation (VLSMMachine_pre_loaded_with_messages (vmachine (composite_vlsm (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed))) seed) (composite_vlsm_machine sub_equivocator_IM (free_constraint sub_equivocator_IM))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM messagestrong_incl_valid_preservation (VLSMMachine_pre_loaded_with_messages (vmachine (composite_vlsm (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed))) seed) (composite_vlsm_machine sub_equivocator_IM (free_constraint sub_equivocator_IM))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM messagestrong_incl_transition_preservation (VLSMMachine_pre_loaded_with_messages (vmachine (composite_vlsm (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed))) seed) (composite_vlsm_machine sub_equivocator_IM (free_constraint sub_equivocator_IM))intros l s om [Hv _]; split; [assumption| exact I]. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM messagestrong_incl_valid_preservation (VLSMMachine_pre_loaded_with_messages (vmachine (composite_vlsm (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed))) seed) (composite_vlsm_machine sub_equivocator_IM (free_constraint sub_equivocator_IM))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
final_descriptors: equivocator_descriptors sub_IMVLSM_partial_projection SeededXE SeededX (equivocators_partial_trace_project sub_IM final_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
final_descriptors: equivocator_descriptors sub_IMVLSM_partial_projection SeededXE SeededX (equivocators_partial_trace_project sub_IM final_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
final_descriptors: equivocator_descriptors sub_IM∀ (sX : vstate SeededXE) (trX : list (vtransition_item SeededXE)) (sY : vstate SeededX) (trY : list (vtransition_item SeededX)), equivocators_partial_trace_project sub_IM final_descriptors (sX, trX) = Some (sY, trY) → ∀ (s'X : state) (preX : list transition_item), finite_trace_last s'X preX = sX → finite_valid_trace_from SeededXE s'X (preX ++ trX) → ∃ (s'Y : vstate SeededX) (preY : list (vtransition_item SeededX)), equivocators_partial_trace_project sub_IM final_descriptors (s'X, preX ++ trX) = Some (s'Y, preY ++ trY) ∧ finite_trace_last s'Y preY = sYmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
final_descriptors: equivocator_descriptors sub_IM∀ (sX : vstate SeededXE) (trX : list (vtransition_item SeededXE)) (sY : vstate SeededX) (trY : list (vtransition_item SeededX)), equivocators_partial_trace_project sub_IM final_descriptors (sX, trX) = Some (sY, trY) → finite_valid_trace SeededXE sX trX → finite_valid_trace SeededX sY trYmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
final_descriptors: equivocator_descriptors sub_IM∀ (sX : vstate SeededXE) (trX : list (vtransition_item SeededXE)) (sY : vstate SeededX) (trY : list (vtransition_item SeededX)), equivocators_partial_trace_project sub_IM final_descriptors (sX, trX) = Some (sY, trY) → ∀ (s'X : state) (preX : list transition_item), finite_trace_last s'X preX = sX → finite_valid_trace_from SeededXE s'X (preX ++ trX) → ∃ (s'Y : vstate SeededX) (preY : list (vtransition_item SeededX)), equivocators_partial_trace_project sub_IM final_descriptors (s'X, preX ++ trX) = Some (s'Y, preY ++ trY) ∧ finite_trace_last s'Y preY = sYmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
final_descriptors: equivocator_descriptors sub_IM
s: vstate SeededXE
tr: list (vtransition_item SeededXE)
sX: vstate SeededX
trX: list (vtransition_item SeededX)
Hpr_tr: equivocators_partial_trace_project sub_IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from SeededXE s_pre (pre ++ tr)∃ (s'Y : vstate SeededX) (preY : list (vtransition_item SeededX)), equivocators_partial_trace_project sub_IM final_descriptors (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
final_descriptors: equivocator_descriptors sub_IM
s: vstate SeededXE
tr: list (vtransition_item SeededXE)
sX: vstate SeededX
trX: list (vtransition_item SeededX)
Hpr_tr: equivocators_partial_trace_project sub_IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from SeededXE s_pre (pre ++ tr)finite_valid_trace_from SubPreFreeE s_pre (pre ++ tr)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
final_descriptors: equivocator_descriptors sub_IM
s: vstate SeededXE
tr: list (vtransition_item SeededXE)
sX: vstate SeededX
trX: list (vtransition_item SeededX)
Hpr_tr: equivocators_partial_trace_project sub_IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from SeededXE s_pre (pre ++ tr)
HPreFree_pre_tr: finite_valid_trace_from SubPreFreeE s_pre (pre ++ tr)∃ (s'Y : vstate SeededX) (preY : list (vtransition_item SeededX)), equivocators_partial_trace_project sub_IM final_descriptors (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
final_descriptors: equivocator_descriptors sub_IM
s: vstate SeededXE
tr: list (vtransition_item SeededXE)
sX: vstate SeededX
trX: list (vtransition_item SeededX)
Hpr_tr: equivocators_partial_trace_project sub_IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from SeededXE s_pre (pre ++ tr)finite_valid_trace_from SubPreFreeE s_pre (pre ++ tr)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
final_descriptors: equivocator_descriptors sub_IM
s: vstate SeededXE
tr: list (vtransition_item SeededXE)
sX: vstate SeededX
trX: list (vtransition_item SeededX)
Hpr_tr: equivocators_partial_trace_project sub_IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = sfinite_valid_trace_from SeededXE s_pre (pre ++ tr) → finite_valid_trace_from SubPreFreeE s_pre (pre ++ tr)apply SeededXE_incl_PreFreeE.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
final_descriptors: equivocator_descriptors sub_IM
s: vstate SeededXE
tr: list (vtransition_item SeededXE)
sX: vstate SeededX
trX: list (vtransition_item SeededX)
Hpr_tr: equivocators_partial_trace_project sub_IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = sVLSM_incl_part (VLSMMachine_pre_loaded_with_messages (vmachine (composite_vlsm (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (no_equivocations_additional_constraint_with_pre_loaded (SubProjectionTraces.sub_IM (equivocator_IM IM) selection) (free_constraint (SubProjectionTraces.sub_IM (equivocator_IM IM) selection)) seed))) seed) (pre_loaded_with_all_messages_vlsm_machine SubFreeE)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
final_descriptors: equivocator_descriptors sub_IM
s: vstate SeededXE
tr: list (vtransition_item SeededXE)
sX: vstate SeededX
trX: list (vtransition_item SeededX)
Hpr_tr: equivocators_partial_trace_project sub_IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from SeededXE s_pre (pre ++ tr)
HPreFree_pre_tr: finite_valid_trace_from SubPreFreeE s_pre (pre ++ tr)∃ (s'Y : vstate SeededX) (preY : list (vtransition_item SeededX)), equivocators_partial_trace_project sub_IM final_descriptors (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
final_descriptors: equivocator_descriptors sub_IM
s: vstate SeededXE
tr: list (vtransition_item SeededXE)
sX: vstate SeededX
trX: list (vtransition_item SeededX)
Hpr_tr: equivocators_partial_trace_project sub_IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
HPreFree_pre_tr: finite_valid_trace_from SubPreFreeE s_pre (pre ++ tr)∃ (s'Y : vstate SeededX) (preY : list (vtransition_item SeededX)), equivocators_partial_trace_project sub_IM final_descriptors (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sXapply equivocators_partial_trace_project_extends_left.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
final_descriptors: equivocator_descriptors sub_IM∀ (s : vstate SeededXE) (tr : list (vtransition_item SeededXE)) (sX : vstate SeededX) (trX : list (vtransition_item SeededX)), equivocators_partial_trace_project sub_IM final_descriptors (s, tr) = Some (sX, trX) → ∀ (s_pre : state) (pre : list transition_item), finite_trace_last s_pre pre = s → finite_valid_trace_from SubPreFreeE s_pre (pre ++ tr) → ∃ (s'Y : vstate SeededX) (preY : list (vtransition_item SeededX)), equivocators_partial_trace_project sub_IM final_descriptors (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
final_descriptors: equivocator_descriptors sub_IM∀ (sX : vstate SeededXE) (trX : list (vtransition_item SeededXE)) (sY : vstate SeededX) (trY : list (vtransition_item SeededX)), equivocators_partial_trace_project sub_IM final_descriptors (sX, trX) = Some (sY, trY) → finite_valid_trace SeededXE sX trX → finite_valid_trace SeededX sY trYmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
final_descriptors: equivocator_descriptors sub_IM
s: vstate SeededXE
tr: list (vtransition_item SeededXE)
sX: vstate SeededX
trX: list (vtransition_item SeededX)
Hpr_tr: equivocators_partial_trace_project sub_IM final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace SeededXE s trfinite_valid_trace SeededX sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
final_descriptors: equivocator_descriptors sub_IM
s: vstate SeededXE
tr: list (vtransition_item SeededXE)
sX: vstate SeededX
trX: list (vtransition_item SeededX)
Hpr_tr: equivocators_partial_trace_project sub_IM final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace SeededXE s tr
Hnot_equiv: not_equivocating_equivocator_descriptors sub_IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors sub_IM
Htr_project: equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project sub_IM initial_descriptors s = sXfinite_valid_trace SeededX sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
final_descriptors: equivocator_descriptors sub_IM
s: vstate SeededXE
tr: list (vtransition_item SeededXE)
sX: vstate SeededX
trX: list (vtransition_item SeededX)
Hpr_tr: equivocators_partial_trace_project sub_IM final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace SeededXE s tr
Hnot_equiv: not_equivocating_equivocator_descriptors sub_IM final_descriptors (finite_trace_last s tr)
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors sub_IM
Htr_project: equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project sub_IM initial_descriptors s = sXfinite_valid_trace SeededX sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
final_descriptors: equivocator_descriptors sub_IM
s: vstate SeededXE
tr: list (vtransition_item SeededXE)
sX: vstate SeededX
trX: list (vtransition_item SeededX)
Hpr_tr: equivocators_partial_trace_project sub_IM final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace SeededXE s tr
Hnot_equiv: not_equivocating_equivocator_descriptors sub_IM final_descriptors (finite_trace_last s tr)
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors sub_IM
Htr_project: equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project sub_IM initial_descriptors s = sX
_trX: list (composite_transition_item sub_IM)
_initial_descriptors: equivocator_descriptors sub_IM
_Htr_project: equivocators_trace_project sub_IM final_descriptors tr = Some (_trX, _initial_descriptors)
HtrX: finite_valid_trace SeededX (equivocators_state_project sub_IM _initial_descriptors s) _trXfinite_valid_trace SeededX sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
final_descriptors: equivocator_descriptors sub_IM
s: vstate SeededXE
tr: list (vtransition_item SeededXE)
sX: vstate SeededX
trX: list (vtransition_item SeededX)
Hpr_tr: equivocators_partial_trace_project sub_IM final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace SeededXE s tr
Hnot_equiv: not_equivocating_equivocator_descriptors sub_IM final_descriptors (finite_trace_last s tr)
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors sub_IM
Htr_project: equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project sub_IM initial_descriptors s = sX
_trX: list (composite_transition_item sub_IM)
_initial_descriptors: equivocator_descriptors sub_IM
_Htr_project: Some (trX, initial_descriptors) = Some (_trX, _initial_descriptors)
HtrX: finite_valid_trace SeededX (equivocators_state_project sub_IM _initial_descriptors s) _trXfinite_valid_trace SeededX sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
final_descriptors: equivocator_descriptors sub_IM
s: vstate SeededXE
tr: list (vtransition_item SeededXE)
sX: vstate SeededX
trX: list (vtransition_item SeededX)
Hpr_tr: equivocators_partial_trace_project sub_IM final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace SeededXE s tr
Hnot_equiv: not_equivocating_equivocator_descriptors sub_IM final_descriptors (finite_trace_last s tr)
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors sub_IM
Htr_project: equivocators_trace_project sub_IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project sub_IM initial_descriptors s = sX
_trX: list (composite_transition_item sub_IM)
_initial_descriptors: equivocator_descriptors sub_IM
_Htr_project: Some (trX, initial_descriptors) = Some (_trX, _initial_descriptors)
HtrX: finite_valid_trace SeededX (equivocators_state_project sub_IM _initial_descriptors s) _trX
H2: trX = _trX
H3: initial_descriptors = _initial_descriptorsfinite_valid_trace SeededX sX _trXassumption. Qed. End seeded_equivocators_valid_trace_project. End equivocators_composition_sub_projections. Section equivocators_composition_vlsm_projection. Context {message : Type} `{finite.Finite index} (IM : index -> VLSM message) `{forall i : index, HasBeenSentCapability (IM i)} (equivocators_no_equivocations_vlsm := equivocators_no_equivocations_vlsm IM) (equivocators_state_project := equivocators_state_project IM) (equivocator_IM := equivocator_IM IM) (equivocator_descriptors_update := equivocator_descriptors_update IM) (proper_equivocator_descriptors := proper_equivocator_descriptors IM) (FreeE := free_composite_vlsm equivocator_IM) (PreFreeE := pre_loaded_with_all_messages_vlsm FreeE) (Free := free_composite_vlsm IM) (PreFree := pre_loaded_with_all_messages_vlsm Free) (sub_IM := sub_IM IM (finite.enum index)) . Definition free_sub_free_equivocator_descriptors (descriptors : equivocator_descriptors IM) : equivocator_descriptors sub_IM := fun i => descriptors (dec_proj1_sig i).message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
selection: list index
seed: message → Prop
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM selection seed: VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM (equivocator_IM IM) selection: sub_index selection → VLSM message
SubFreeE:= free_composite_vlsm sub_equivocator_IM: VLSM message
SubPreFreeE:= pre_loaded_with_all_messages_vlsm SubFreeE: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM selection: sub_index selection → VLSM message
SubFree:= free_composite_vlsm sub_IM: VLSM message
SeededX:= pre_loaded_vlsm SubFree seed: VLSM message
final_descriptors: equivocator_descriptors sub_IM
s: vstate SeededXE
tr: list (vtransition_item SeededXE)
_trX: list (composite_transition_item sub_IM)
_initial_descriptors: equivocator_descriptors sub_IM
_Htr_project: Some (_trX, _initial_descriptors) = Some (_trX, _initial_descriptors)
Hpr_tr: equivocators_partial_trace_project sub_IM final_descriptors (s, tr) = Some (equivocators_state_project sub_IM _initial_descriptors s, _trX)
Htr: finite_valid_trace SeededXE s tr
Hnot_equiv: not_equivocating_equivocator_descriptors sub_IM final_descriptors (finite_trace_last s tr)
Hproper: proper_equivocator_descriptors sub_IM final_descriptors (finite_trace_last s tr)
Htr_project: equivocators_trace_project sub_IM final_descriptors tr = Some (_trX, _initial_descriptors)
HtrX: finite_valid_trace SeededX (equivocators_state_project sub_IM _initial_descriptors s) _trXfinite_valid_trace SeededX (equivocators_state_project sub_IM _initial_descriptors s) _trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IMVLSM_partial_projection equivocators_no_equivocations_vlsm Free (equivocators_partial_trace_project IM final_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IMVLSM_partial_projection equivocators_no_equivocations_vlsm Free (equivocators_partial_trace_project IM final_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM∀ (sX : vstate equivocators_no_equivocations_vlsm) (trX : list (vtransition_item equivocators_no_equivocations_vlsm)) (sY : vstate Free) (trY : list (vtransition_item Free)), equivocators_partial_trace_project IM final_descriptors (sX, trX) = Some (sY, trY) → ∀ (s'X : state) (preX : list transition_item), finite_trace_last s'X preX = sX → finite_valid_trace_from equivocators_no_equivocations_vlsm s'X (preX ++ trX) → ∃ (s'Y : vstate Free) (preY : list (vtransition_item Free)), equivocators_partial_trace_project IM final_descriptors (s'X, preX ++ trX) = Some (s'Y, preY ++ trY) ∧ finite_trace_last s'Y preY = sYmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM∀ (sX : vstate equivocators_no_equivocations_vlsm) (trX : list (vtransition_item equivocators_no_equivocations_vlsm)) (sY : vstate Free) (trY : list (vtransition_item Free)), equivocators_partial_trace_project IM final_descriptors (sX, trX) = Some (sY, trY) → finite_valid_trace equivocators_no_equivocations_vlsm sX trX → finite_valid_trace Free sY trYmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM∀ (sX : vstate equivocators_no_equivocations_vlsm) (trX : list (vtransition_item equivocators_no_equivocations_vlsm)) (sY : vstate Free) (trY : list (vtransition_item Free)), equivocators_partial_trace_project IM final_descriptors (sX, trX) = Some (sY, trY) → ∀ (s'X : state) (preX : list transition_item), finite_trace_last s'X preX = sX → finite_valid_trace_from equivocators_no_equivocations_vlsm s'X (preX ++ trX) → ∃ (s'Y : vstate Free) (preY : list (vtransition_item Free)), equivocators_partial_trace_project IM final_descriptors (s'X, preX ++ trX) = Some (s'Y, preY ++ trY) ∧ finite_trace_last s'Y preY = sYmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from equivocators_no_equivocations_vlsm s_pre (pre ++ tr)∃ (s'Y : vstate Free) (preY : list (vtransition_item Free)), equivocators_partial_trace_project IM final_descriptors (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from equivocators_no_equivocations_vlsm s_pre (pre ++ tr)finite_valid_trace_from PreFreeE s_pre (pre ++ tr)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from equivocators_no_equivocations_vlsm s_pre (pre ++ tr)
HPreFree_pre_tr: finite_valid_trace_from PreFreeE s_pre (pre ++ tr)∃ (s'Y : vstate Free) (preY : list (vtransition_item Free)), equivocators_partial_trace_project IM final_descriptors (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from equivocators_no_equivocations_vlsm s_pre (pre ++ tr)finite_valid_trace_from PreFreeE s_pre (pre ++ tr)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = sfinite_valid_trace_from equivocators_no_equivocations_vlsm s_pre (pre ++ tr) → finite_valid_trace_from PreFreeE s_pre (pre ++ tr)apply equivocators_no_equivocations_vlsm_incl_PreFree.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = sVLSM_incl_part (composite_vlsm_machine (Common.equivocator_IM IM) (equivocators_no_equivocations_constraint IM)) (pre_loaded_with_all_messages_vlsm_machine FreeE)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from equivocators_no_equivocations_vlsm s_pre (pre ++ tr)
HPreFree_pre_tr: finite_valid_trace_from PreFreeE s_pre (pre ++ tr)∃ (s'Y : vstate Free) (preY : list (vtransition_item Free)), equivocators_partial_trace_project IM final_descriptors (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
HPreFree_pre_tr: finite_valid_trace_from PreFreeE s_pre (pre ++ tr)∃ (s'Y : vstate Free) (preY : list (vtransition_item Free)), equivocators_partial_trace_project IM final_descriptors (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sXapply equivocators_partial_trace_project_extends_left.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM∀ (s : vstate equivocators_no_equivocations_vlsm) (tr : list (vtransition_item equivocators_no_equivocations_vlsm)) (sX : vstate Free) (trX : list (vtransition_item Free)), equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX) → ∀ (s_pre : state) (pre : list transition_item), finite_trace_last s_pre pre = s → finite_valid_trace_from PreFreeE s_pre (pre ++ tr) → ∃ (s'Y : vstate Free) (preY : list (vtransition_item Free)), equivocators_partial_trace_project IM final_descriptors (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM∀ (sX : vstate equivocators_no_equivocations_vlsm) (trX : list (vtransition_item equivocators_no_equivocations_vlsm)) (sY : vstate Free) (trY : list (vtransition_item Free)), equivocators_partial_trace_project IM final_descriptors (sX, trX) = Some (sY, trY) → finite_valid_trace equivocators_no_equivocations_vlsm sX trX → finite_valid_trace Free sY trYmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace equivocators_no_equivocations_vlsm s trfinite_valid_trace Free sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace equivocators_no_equivocations_vlsm s tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sXfinite_valid_trace Free sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace equivocators_no_equivocations_vlsm s tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sXfinite_valid_trace Free sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace equivocators_no_equivocations_vlsm s tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sX
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))finite_valid_trace Free sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Htr: finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sXfinite_valid_trace Free sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Htr: finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sX
Heq: VLSM_eq (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))finite_valid_trace Free sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Htr: finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sX
Heq: VLSM_eq (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Htr: finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sX
Heq: VLSM_eq (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))
Htr': finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)finite_valid_trace Free sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Htr: finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sX
Heq: VLSM_eq (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sX
Heq: VLSM_eq (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr) → finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sX
Heq: VLSM_eq (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))VLSM_incl_part (composite_vlsm_machine (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_vlsm_machine (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM messageVLSM_incl_part (composite_vlsm_machine (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_vlsm_machine (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM messageinput_valid_constraint_subsumption (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM messagepreloaded_constraint_subsumption (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM messagestrong_constraint_subsumption (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: sub_index (enum index)
li: vlabel (SubProjectionTraces.sub_IM equivocator_IM (enum index) i)
s: composite_state (SubProjectionTraces.sub_IM equivocator_IM (enum index))
om: option messagefree_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM) (existT i li) (s, om) → no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (existT i li) (s, om)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: sub_index (enum index)
li: vlabel (SubProjectionTraces.sub_IM equivocator_IM (enum index) i)
s: composite_state (SubProjectionTraces.sub_IM equivocator_IM (enum index))
om: option messageequivocators_no_equivocations_constraint IM (existT (` (projT1 (existT i li))) (projT2 (existT i li))) (λ i : index, s (dexist i (SubProjectionTraces.free_sub_free_index_obligation_1 i)), om) → no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (existT i li) (s, om)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: sub_index (enum index)
li: vlabel (SubProjectionTraces.sub_IM equivocator_IM (enum index) i)
s: composite_state (SubProjectionTraces.sub_IM equivocator_IM (enum index))
om: option messageno_equivocations_additional_constraint (Common.equivocator_IM IM) (free_constraint (Common.equivocator_IM IM)) (existT (` (projT1 (existT i li))) (projT2 (existT i li))) (λ i : index, s (dexist i (SubProjectionTraces.free_sub_free_index_obligation_1 i)), om) → no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (existT i li) (s, om)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: sub_index (enum index)
li: vlabel (SubProjectionTraces.sub_IM equivocator_IM (enum index) i)
s: composite_state (SubProjectionTraces.sub_IM equivocator_IM (enum index))
om: option message
Hno_equiv: composite_no_equivocations (Common.equivocator_IM IM) (existT (` (projT1 (existT i li))) (projT2 (existT i li))) (λ i : index, s (dexist i (SubProjectionTraces.free_sub_free_index_obligation_1 i)), om)no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (existT i li) (s, om)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: sub_index (enum index)
li: vlabel (SubProjectionTraces.sub_IM equivocator_IM (enum index) i)
s: composite_state (SubProjectionTraces.sub_IM equivocator_IM (enum index))
om: option message
Hno_equiv: composite_no_equivocations (Common.equivocator_IM IM) (existT (` (projT1 (existT i li))) (projT2 (existT i li))) (λ i : index, s (dexist i (SubProjectionTraces.free_sub_free_index_obligation_1 i)), om)composite_no_equivocations (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (existT i li) (s, om)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: sub_index (enum index)
li: vlabel (SubProjectionTraces.sub_IM equivocator_IM (enum index) i)
s: composite_state (SubProjectionTraces.sub_IM equivocator_IM (enum index))
m: message
Hno_equiv: composite_no_equivocations (Common.equivocator_IM IM) (existT (` (projT1 (existT i li))) (projT2 (existT i li))) (λ i : index, s (dexist i (SubProjectionTraces.free_sub_free_index_obligation_1 i)), Some m)composite_no_equivocations (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (existT i li) (s, Some m)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: sub_index (enum index)
li: vlabel (SubProjectionTraces.sub_IM equivocator_IM (enum index) i)
s: composite_state (SubProjectionTraces.sub_IM equivocator_IM (enum index))
m: message
Hno_equiv: composite_no_equivocations (Common.equivocator_IM IM) (existT (` (projT1 (existT i li))) (projT2 (existT i li))) (λ i : index, s (dexist i (SubProjectionTraces.free_sub_free_index_obligation_1 i)), Some m)composite_has_been_sent (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (s, Some m).1 mmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: sub_index (enum index)
li: vlabel (SubProjectionTraces.sub_IM equivocator_IM (enum index) i)
s: composite_state (SubProjectionTraces.sub_IM equivocator_IM (enum index))
m: message
Hno_equiv: composite_has_been_sent (Common.equivocator_IM IM) (λ i : index, s (dexist i (SubProjectionTraces.free_sub_free_index_obligation_1 i)), Some m).1 mcomposite_has_been_sent (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (s, Some m).1 mmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: sub_index (enum index)
li: vlabel (SubProjectionTraces.sub_IM equivocator_IM (enum index) i)
s: composite_state (SubProjectionTraces.sub_IM equivocator_IM (enum index))
m: message
eqv: index
Hno_equiv: has_been_sent (Common.equivocator_IM IM eqv) ((λ i : index, s (dexist i (SubProjectionTraces.free_sub_free_index_obligation_1 i)), Some m).1 eqv) mcomposite_has_been_sent (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (s, Some m).1 massumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: sub_index (enum index)
li: vlabel (SubProjectionTraces.sub_IM equivocator_IM (enum index) i)
s: composite_state (SubProjectionTraces.sub_IM equivocator_IM (enum index))
m: message
eqv: index
Hno_equiv: has_been_sent (Common.equivocator_IM IM eqv) ((λ i : index, s (dexist i (SubProjectionTraces.free_sub_free_index_obligation_1 i)), Some m).1 eqv) mhas_been_sent (SubProjectionTraces.sub_IM equivocator_IM (enum index) (dexist eqv (SubProjectionTraces.free_sub_free_index_obligation_1 eqv))) ((s, Some m).1 (dexist eqv (SubProjectionTraces.free_sub_free_index_obligation_1 eqv))) mmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Htr: finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sX
Heq: VLSM_eq (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))
Htr': finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)finite_valid_trace Free sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Htr: finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sX
Heq: VLSM_eq (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))
Htr': finite_valid_trace {| vtype := vtype (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)); vmachine := machine (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) |} (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)finite_valid_trace Free sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Htr: finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sX
Heq: VLSM_eq (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))
Htr': finite_valid_trace {| vtype := vtype (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)); vmachine := machine (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) |} (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hproject: Common.proper_equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (finite_trace_last (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)) → ∃ (trX : list (composite_transition_item (SubProjectionTraces.sub_IM IM (enum index)))) (initial_descriptors : equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index))), let isX := Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) initial_descriptors (composite_state_sub_projection equivocator_IM (enum index) s) in let final_stateX := finite_trace_last isX trX in Common.proper_equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index)) initial_descriptors (composite_state_sub_projection equivocator_IM (enum index) s) ∧ equivocators_trace_project (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (VLSM_full_projection_finite_trace_project Hproj tr) = Some (trX, initial_descriptors) ∧ Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (finite_trace_last (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)) = final_stateX ∧ finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False)) isX trXfinite_valid_trace Free sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Htr: finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sX
Heq: VLSM_eq (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))
Htr': finite_valid_trace {| vtype := vtype (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)); vmachine := machine (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) |} (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hproject: Common.proper_equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (finite_trace_last (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)) → ∃ (trX : list (composite_transition_item (SubProjectionTraces.sub_IM IM (enum index)))) (initial_descriptors : equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index))), let isX := Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) initial_descriptors (composite_state_sub_projection equivocator_IM (enum index) s) in let final_stateX := finite_trace_last isX trX in Common.proper_equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index)) initial_descriptors (composite_state_sub_projection equivocator_IM (enum index) s) ∧ equivocators_trace_project (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (VLSM_full_projection_finite_trace_project Hproj tr) = Some (trX, initial_descriptors) ∧ Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (finite_trace_last (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)) = final_stateX ∧ finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False)) isX trXCommon.proper_equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (finite_trace_last (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Htr: finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sX
Heq: VLSM_eq (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))
Htr': finite_valid_trace {| vtype := vtype (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)); vmachine := machine (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) |} (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hproject: ∃ (trX : list (composite_transition_item (SubProjectionTraces.sub_IM IM (enum index)))) (initial_descriptors : equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index))), let isX := Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) initial_descriptors (composite_state_sub_projection equivocator_IM (enum index) s) in let final_stateX := finite_trace_last isX trX in Common.proper_equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index)) initial_descriptors (composite_state_sub_projection equivocator_IM (enum index) s) ∧ equivocators_trace_project (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (VLSM_full_projection_finite_trace_project Hproj tr) = Some (trX, initial_descriptors) ∧ Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (finite_trace_last (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)) = final_stateX ∧ finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False)) isX trXfinite_valid_trace Free sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Htr: finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sX
Heq: VLSM_eq (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))
Htr': finite_valid_trace {| vtype := vtype (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)); vmachine := machine (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) |} (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hproject: Common.proper_equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (finite_trace_last (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)) → ∃ (trX : list (composite_transition_item (SubProjectionTraces.sub_IM IM (enum index)))) (initial_descriptors : equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index))), let isX := Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) initial_descriptors (composite_state_sub_projection equivocator_IM (enum index) s) in let final_stateX := finite_trace_last isX trX in Common.proper_equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index)) initial_descriptors (composite_state_sub_projection equivocator_IM (enum index) s) ∧ equivocators_trace_project (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (VLSM_full_projection_finite_trace_project Hproj tr) = Some (trX, initial_descriptors) ∧ Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (finite_trace_last (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)) = final_stateX ∧ finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False)) isX trXCommon.proper_equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (finite_trace_last (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)Common.proper_equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (finite_trace_last (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
sub_i: sub_index (enum index)proper_descriptor (SubProjectionTraces.sub_IM IM (enum index) sub_i) (free_sub_free_equivocator_descriptors final_descriptors sub_i) (finite_trace_last (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr) sub_i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
sub_i: sub_index (enum index)
i: index
Hi: sub_index_prop (enum index) i
Heqsub_i: sub_i = dexist i Hiproper_descriptor (SubProjectionTraces.sub_IM IM (enum index) sub_i) (free_sub_free_equivocator_descriptors final_descriptors sub_i) (finite_trace_last (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr) sub_i)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
i: index
Hi: sub_index_prop (enum index) iproper_descriptor (SubProjectionTraces.sub_IM IM (enum index) (dexist i Hi)) (free_sub_free_equivocator_descriptors final_descriptors (dexist i Hi)) (finite_trace_last (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr) (dexist i Hi))apply Hproper.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
i: index
Hi: sub_index_prop (enum index) iproper_descriptor (SubProjectionTraces.sub_IM IM (enum index) (dexist i Hi)) (free_sub_free_equivocator_descriptors final_descriptors (dexist i Hi)) (composite_state_sub_projection equivocator_IM (enum index) (finite_trace_last s tr) (dexist i Hi))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Htr: finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sX
Heq: VLSM_eq (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))
Htr': finite_valid_trace {| vtype := vtype (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)); vmachine := machine (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) |} (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hproject: ∃ (trX : list (composite_transition_item (SubProjectionTraces.sub_IM IM (enum index)))) (initial_descriptors : equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index))), let isX := Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) initial_descriptors (composite_state_sub_projection equivocator_IM (enum index) s) in let final_stateX := finite_trace_last isX trX in Common.proper_equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index)) initial_descriptors (composite_state_sub_projection equivocator_IM (enum index) s) ∧ equivocators_trace_project (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (VLSM_full_projection_finite_trace_project Hproj tr) = Some (trX, initial_descriptors) ∧ Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (finite_trace_last (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)) = final_stateX ∧ finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False)) isX trXfinite_valid_trace Free sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Htr: finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sX
Heq: VLSM_eq (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))
Htr': finite_valid_trace {| vtype := vtype (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)); vmachine := machine (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) |} (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
_trX: list (composite_transition_item (SubProjectionTraces.sub_IM IM (enum index)))
_initial_descriptors: equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index))
_Htr_project: equivocators_trace_project (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (VLSM_full_projection_finite_trace_project Hproj tr) = Some (_trX, _initial_descriptors)
HtrX: finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False)) (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) _initial_descriptors (composite_state_sub_projection equivocator_IM (enum index) s)) _trXfinite_valid_trace Free sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Htr: finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sX
Heq: VLSM_eq (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))
Htr': finite_valid_trace {| vtype := vtype (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)); vmachine := machine (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) |} (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
_trX: list (composite_transition_item (SubProjectionTraces.sub_IM IM (enum index)))
_initial_descriptors: equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index))
_Htr_project: equivocators_trace_project (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (VLSM_full_projection_finite_trace_project Hproj tr) = Some (_trX, _initial_descriptors)
HtrX: finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False)) (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) _initial_descriptors (composite_state_sub_projection equivocator_IM (enum index) s)) _trX
Hcommute: equivocators_trace_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), final_descriptors (` i)) (finite_trace_sub_projection (Common.equivocator_IM IM) (enum index) tr) = Some (_trX, _initial_descriptors) → _initial_descriptors = (λ i : sub_index (enum index), initial_descriptors (` i)) ∧ finite_trace_sub_projection IM (enum index) trX = _trXfinite_valid_trace Free sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Htr: finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sX
Heq: VLSM_eq (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))
Htr': finite_valid_trace {| vtype := vtype (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)); vmachine := machine (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) |} (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
_trX: list (composite_transition_item (SubProjectionTraces.sub_IM IM (enum index)))
_initial_descriptors: equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index))
_Htr_project: equivocators_trace_project (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (VLSM_full_projection_finite_trace_project Hproj tr) = Some (_trX, _initial_descriptors)
HtrX: finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False)) (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) _initial_descriptors (composite_state_sub_projection equivocator_IM (enum index) s)) _trX
Hcommute: equivocators_trace_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), final_descriptors (` i)) (finite_trace_sub_projection (Common.equivocator_IM IM) (enum index) tr) = Some (_trX, _initial_descriptors) → _initial_descriptors = (λ i : sub_index (enum index), initial_descriptors (` i)) ∧ finite_trace_sub_projection IM (enum index) trX = _trXequivocators_trace_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), final_descriptors (` i)) (finite_trace_sub_projection (Common.equivocator_IM IM) (enum index) tr) = Some (_trX, _initial_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Htr: finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sX
Heq: VLSM_eq (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))
Htr': finite_valid_trace {| vtype := vtype (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)); vmachine := machine (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) |} (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
_trX: list (composite_transition_item (SubProjectionTraces.sub_IM IM (enum index)))
_initial_descriptors: equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index))
_Htr_project: equivocators_trace_project (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (VLSM_full_projection_finite_trace_project Hproj tr) = Some (_trX, _initial_descriptors)
HtrX: finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False)) (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) _initial_descriptors (composite_state_sub_projection equivocator_IM (enum index) s)) _trX
Hcommute: _initial_descriptors = (λ i : sub_index (enum index), initial_descriptors (` i)) ∧ finite_trace_sub_projection IM (enum index) trX = _trXfinite_valid_trace Free sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Htr: finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sX
Heq: VLSM_eq (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))
Htr': finite_valid_trace {| vtype := vtype (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)); vmachine := machine (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) |} (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
_trX: list (composite_transition_item (SubProjectionTraces.sub_IM IM (enum index)))
_initial_descriptors: equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index))
_Htr_project: equivocators_trace_project (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (VLSM_full_projection_finite_trace_project Hproj tr) = Some (_trX, _initial_descriptors)
HtrX: finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False)) (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) _initial_descriptors (composite_state_sub_projection equivocator_IM (enum index) s)) _trX
Hcommute: equivocators_trace_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), final_descriptors (` i)) (finite_trace_sub_projection (Common.equivocator_IM IM) (enum index) tr) = Some (_trX, _initial_descriptors) → _initial_descriptors = (λ i : sub_index (enum index), initial_descriptors (` i)) ∧ finite_trace_sub_projection IM (enum index) trX = _trXequivocators_trace_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), final_descriptors (` i)) (finite_trace_sub_projection (Common.equivocator_IM IM) (enum index) tr) = Some (_trX, _initial_descriptors)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Htr: finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sX
Heq: VLSM_eq (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))
Htr': finite_valid_trace {| vtype := vtype (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)); vmachine := machine (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) |} (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
_trX: list (composite_transition_item (SubProjectionTraces.sub_IM IM (enum index)))
_initial_descriptors: equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index))
_Htr_project: equivocators_trace_project (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (VLSM_full_projection_finite_trace_project Hproj tr) = Some (_trX, _initial_descriptors)
HtrX: finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False)) (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) _initial_descriptors (composite_state_sub_projection equivocator_IM (enum index) s)) _trX
Hcommute: equivocators_trace_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), final_descriptors (` i)) (finite_trace_sub_projection (Common.equivocator_IM IM) (enum index) tr) = Some (_trX, _initial_descriptors) → _initial_descriptors = (λ i : sub_index (enum index), initial_descriptors (` i)) ∧ finite_trace_sub_projection IM (enum index) trX = _trXVLSM_full_projection_finite_trace_project Hproj tr = finite_trace_sub_projection equivocator_IM (enum index) trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))VLSM_full_projection_finite_trace_project Hproj tr = finite_trace_sub_projection equivocator_IM (enum index) trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
a: vtransition_item equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
IHtr: VLSM_full_projection_finite_trace_project Hproj tr = finite_trace_sub_projection equivocator_IM (enum index) trVLSM_full_projection_finite_trace_project Hproj (a :: tr) = finite_trace_sub_projection equivocator_IM (enum index) (a :: tr)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
a: vtransition_item equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
IHtr: VLSM_full_projection_finite_trace_project Hproj tr = finite_trace_sub_projection equivocator_IM (enum index) trpre_VLSM_full_projection_trace_item_project (composite_type equivocator_IM) (composite_type (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index)) a :: VLSM_full_projection_finite_trace_project Hproj tr = match pre_VLSM_projection_transition_item_project (composite_type equivocator_IM) (composite_type (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (composite_label_sub_projection_option equivocator_IM (enum index)) (composite_state_sub_projection equivocator_IM (enum index)) a with | Some b => b :: finite_trace_sub_projection equivocator_IM (enum index) tr | None => finite_trace_sub_projection equivocator_IM (enum index) tr endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
a: vtransition_item equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
IHtr: VLSM_full_projection_finite_trace_project Hproj tr = finite_trace_sub_projection equivocator_IM (enum index) tr{| l := free_sub_free_label equivocator_IM (l a); input := input a; destination := composite_state_sub_projection equivocator_IM (enum index) (destination a); output := output a |} :: VLSM_full_projection_finite_trace_project Hproj tr = match match match decide (projT1 (l a) ∈ enum index) with | left i_in => Some (composite_label_sub_projection equivocator_IM (enum index) (l a) i_in) | in_right => None end with | Some lY => Some {| l := lY; input := input a; destination := composite_state_sub_projection equivocator_IM (enum index) (destination a); output := output a |} | None => None end with | Some b => b :: finite_trace_sub_projection equivocator_IM (enum index) tr | None => finite_trace_sub_projection equivocator_IM (enum index) tr endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
a: vtransition_item equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
IHtr: VLSM_full_projection_finite_trace_project Hproj tr = finite_trace_sub_projection equivocator_IM (enum index) tr{| l := free_sub_free_label equivocator_IM (l a); input := input a; destination := composite_state_sub_projection equivocator_IM (enum index) (destination a); output := output a |} :: VLSM_full_projection_finite_trace_project Hproj tr = match match match decide (projT1 (l a) ∈ enum index) with | left i_in => Some (composite_label_sub_projection equivocator_IM (enum index) (l a) i_in) | in_right => None end with | Some lY => Some {| l := lY; input := input a; destination := composite_state_sub_projection equivocator_IM (enum index) (destination a); output := output a |} | None => None end with | Some b => b :: finite_trace_sub_projection equivocator_IM (enum index) tr | None => finite_trace_sub_projection equivocator_IM (enum index) tr endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
a: vtransition_item equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
IHtr: VLSM_full_projection_finite_trace_project Hproj tr = finite_trace_sub_projection equivocator_IM (enum index) tr
Hla: projT1 (l a) ∈ enum index{| l := free_sub_free_label equivocator_IM (l a); input := input a; destination := composite_state_sub_projection equivocator_IM (enum index) (destination a); output := output a |} :: VLSM_full_projection_finite_trace_project Hproj tr = {| l := composite_label_sub_projection equivocator_IM (enum index) (l a) Hla; input := input a; destination := composite_state_sub_projection equivocator_IM (enum index) (destination a); output := output a |} :: finite_trace_sub_projection equivocator_IM (enum index) trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
a: vtransition_item equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
IHtr: VLSM_full_projection_finite_trace_project Hproj tr = finite_trace_sub_projection equivocator_IM (enum index) tr
Hla: projT1 (l a) ∈ enum index{| l := free_sub_free_label equivocator_IM (l a); input := input a; destination := composite_state_sub_projection equivocator_IM (enum index) (destination a); output := output a |} = {| l := composite_label_sub_projection equivocator_IM (enum index) (l a) Hla; input := input a; destination := composite_state_sub_projection equivocator_IM (enum index) (destination a); output := output a |}message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: index
li: vlabel (Common.equivocator_IM IM i)
input: option message
destination: state
output: option message
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
IHtr: VLSM_full_projection_finite_trace_project Hproj tr = finite_trace_sub_projection equivocator_IM (enum index) tr
Hla: projT1 (l {| l := existT i li; input := input; destination := destination; output := output |}) ∈ enum indexexistT (free_sub_free_index i) li = composite_label_sub_projection equivocator_IM (enum index) (existT i li) Hlamessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: index
li: vlabel (Common.equivocator_IM IM i)
input: option message
destination: state
output: option message
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
IHtr: VLSM_full_projection_finite_trace_project Hproj tr = finite_trace_sub_projection equivocator_IM (enum index) tr
Hla: projT1 (l {| l := existT i li; input := input; destination := destination; output := output |}) ∈ enum indexexistT (dexist i (SubProjectionTraces.free_sub_free_index_obligation_1 i)) li = existT (dexist i Hla) lireflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
i: index
li: vlabel (Common.equivocator_IM IM i)
input: option message
destination: state
output: option message
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
IHtr: VLSM_full_projection_finite_trace_project Hproj tr = finite_trace_sub_projection equivocator_IM (enum index) tr
Hla: projT1 (l {| l := existT i li; input := input; destination := destination; output := output |}) ∈ enum indexli = limessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Htr: finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sX
Heq: VLSM_eq (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))
Htr': finite_valid_trace {| vtype := vtype (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)); vmachine := machine (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) |} (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
_trX: list (composite_transition_item (SubProjectionTraces.sub_IM IM (enum index)))
_initial_descriptors: equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index))
_Htr_project: equivocators_trace_project (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (VLSM_full_projection_finite_trace_project Hproj tr) = Some (_trX, _initial_descriptors)
HtrX: finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False)) (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) _initial_descriptors (composite_state_sub_projection equivocator_IM (enum index) s)) _trX
Hcommute: _initial_descriptors = (λ i : sub_index (enum index), initial_descriptors (` i)) ∧ finite_trace_sub_projection IM (enum index) trX = _trXfinite_valid_trace Free sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
sX: vstate Free
trX: list (vtransition_item Free)
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Htr: finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: Common.equivocators_state_project IM initial_descriptors s = sX
Heq: VLSM_eq (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))
Htr': finite_valid_trace {| vtype := vtype (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)); vmachine := machine (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) |} (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
_trX: list (composite_transition_item (SubProjectionTraces.sub_IM IM (enum index)))
_initial_descriptors: equivocator_descriptors (SubProjectionTraces.sub_IM IM (enum index))
_Htr_project: equivocators_trace_project (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (VLSM_full_projection_finite_trace_project Hproj tr) = Some (_trX, _initial_descriptors)
HtrX: finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False)) (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) _initial_descriptors (composite_state_sub_projection equivocator_IM (enum index) s)) _trX
Heq_initial: _initial_descriptors = (λ i : sub_index (enum index), initial_descriptors (` i))
Heq_trX: finite_trace_sub_projection IM (enum index) trX = _trXfinite_valid_trace Free sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate equivocators_no_equivocations_vlsm
tr: list (vtransition_item equivocators_no_equivocations_vlsm)
trX: list (vtransition_item Free)
initial_descriptors: equivocator_descriptors IM
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (Common.equivocators_state_project IM initial_descriptors s, trX)
Hproj: VLSM_full_projection (composite_vlsm equivocator_IM (equivocators_no_equivocations_constraint IM)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (free_sub_free_label equivocator_IM) (composite_state_sub_projection equivocator_IM (enum index))
Htr: finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_sub_free_constraint equivocator_IM (equivocators_no_equivocations_constraint IM))) (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Heq: VLSM_eq (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) (composite_vlsm (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (no_equivocations_additional_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index)))))
Htr': finite_valid_trace {| vtype := vtype (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)); vmachine := machine (composite_no_equivocation_vlsm_with_pre_loaded (SubProjectionTraces.sub_IM equivocator_IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM equivocator_IM (enum index))) (λ _ : message, False)) |} (composite_state_sub_projection equivocator_IM (enum index) s) (VLSM_full_projection_finite_trace_project Hproj tr)
_Htr_project: equivocators_trace_project (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_equivocator_descriptors final_descriptors) (VLSM_full_projection_finite_trace_project Hproj tr) = Some (finite_trace_sub_projection IM (enum index) trX, λ i : sub_index (enum index), initial_descriptors (` i))
HtrX: finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False)) (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), initial_descriptors (` i)) (composite_state_sub_projection equivocator_IM (enum index) s)) (finite_trace_sub_projection IM (enum index) trX)finite_valid_trace Free (Common.equivocators_state_project IM initial_descriptors s) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
s: vstate equivocators_no_equivocations_vlsm
trX: list (vtransition_item Free)
initial_descriptors: equivocator_descriptors IM
HtrX: finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False)) (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), initial_descriptors (` i)) (composite_state_sub_projection equivocator_IM (enum index) s)) (finite_trace_sub_projection IM (enum index) trX)finite_valid_trace Free (Common.equivocators_state_project IM initial_descriptors s) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
s: vstate equivocators_no_equivocations_vlsm
trX: list (vtransition_item Free)
initial_descriptors: equivocator_descriptors IM
HtrX: finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False)) (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), initial_descriptors (` i)) (composite_state_sub_projection equivocator_IM (enum index) s)) (finite_trace_sub_projection IM (enum index) trX)
Heq: VLSM_eq (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False))finite_valid_trace Free (Common.equivocators_state_project IM initial_descriptors s) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
s: vstate equivocators_no_equivocations_vlsm
trX: list (vtransition_item Free)
initial_descriptors: equivocator_descriptors IM
HtrX: finite_valid_trace {| vtype := vtype (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))); vmachine := machine (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) |} (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), initial_descriptors (` i)) (composite_state_sub_projection equivocator_IM (enum index) s)) (finite_trace_sub_projection IM (enum index) trX)
Heq: VLSM_eq (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False))finite_valid_trace Free (Common.equivocators_state_project IM initial_descriptors s) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
s: vstate equivocators_no_equivocations_vlsm
trX: list (vtransition_item Free)
initial_descriptors: equivocator_descriptors IM
HtrX: finite_valid_trace {| vtype := vtype (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))); vmachine := machine (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) |} (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), initial_descriptors (` i)) (composite_state_sub_projection equivocator_IM (enum index) s)) (finite_trace_sub_projection IM (enum index) trX)
Heq: VLSM_eq (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False))
Hproj: VLSM_full_projection (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (composite_vlsm IM (free_constraint IM)) (lift_sub_label IM (enum index)) (free_sub_free_state IM)finite_valid_trace Free (Common.equivocators_state_project IM initial_descriptors s) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
s: vstate equivocators_no_equivocations_vlsm
trX: list (vtransition_item Free)
initial_descriptors: equivocator_descriptors IM
HtrX: finite_valid_trace {| vtype := vtype (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))); vmachine := machine (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) |} (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), initial_descriptors (` i)) (composite_state_sub_projection equivocator_IM (enum index) s)) (finite_trace_sub_projection IM (enum index) trX)
Heq: VLSM_eq (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False))
Hproj: VLSM_full_projection (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (composite_vlsm IM (free_constraint IM)) (lift_sub_label IM (enum index)) (free_sub_free_state IM)finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), initial_descriptors (` i)) (composite_state_sub_projection equivocator_IM (enum index) s)) (finite_trace_sub_projection IM (enum index) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
s: vstate equivocators_no_equivocations_vlsm
trX: list (vtransition_item Free)
initial_descriptors: equivocator_descriptors IM
HtrX: finite_valid_trace {| vtype := vtype (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))); vmachine := machine (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) |} (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), initial_descriptors (` i)) (composite_state_sub_projection equivocator_IM (enum index) s)) (finite_trace_sub_projection IM (enum index) trX)
Heq: VLSM_eq (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False))
Hproj: VLSM_full_projection (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (composite_vlsm IM (free_constraint IM)) (lift_sub_label IM (enum index)) (free_sub_free_state IM)
HtrX': finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), initial_descriptors (` i)) (composite_state_sub_projection equivocator_IM (enum index) s)) (finite_trace_sub_projection IM (enum index) trX)finite_valid_trace Free (Common.equivocators_state_project IM initial_descriptors s) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
s: vstate equivocators_no_equivocations_vlsm
trX: list (vtransition_item Free)
initial_descriptors: equivocator_descriptors IM
HtrX: finite_valid_trace {| vtype := vtype (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))); vmachine := machine (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) |} (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), initial_descriptors (` i)) (composite_state_sub_projection equivocator_IM (enum index) s)) (finite_trace_sub_projection IM (enum index) trX)
Heq: VLSM_eq (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False))
Hproj: VLSM_full_projection (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (composite_vlsm IM (free_constraint IM)) (lift_sub_label IM (enum index)) (free_sub_free_state IM)finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), initial_descriptors (` i)) (composite_state_sub_projection equivocator_IM (enum index) s)) (finite_trace_sub_projection IM (enum index) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
s: vstate equivocators_no_equivocations_vlsm
trX: list (vtransition_item Free)
initial_descriptors: equivocator_descriptors IM
Heq: VLSM_eq (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False))
Hproj: VLSM_full_projection (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (composite_vlsm IM (free_constraint IM)) (lift_sub_label IM (enum index)) (free_sub_free_state IM)finite_valid_trace {| vtype := vtype (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))); vmachine := machine (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) |} (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), initial_descriptors (` i)) (composite_state_sub_projection equivocator_IM (enum index) s)) (finite_trace_sub_projection IM (enum index) trX) → finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), initial_descriptors (` i)) (composite_state_sub_projection equivocator_IM (enum index) s)) (finite_trace_sub_projection IM (enum index) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
s: vstate equivocators_no_equivocations_vlsm
trX: list (vtransition_item Free)
initial_descriptors: equivocator_descriptors IM
Heq: VLSM_eq (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False))
Hproj: VLSM_full_projection (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (composite_vlsm IM (free_constraint IM)) (lift_sub_label IM (enum index)) (free_sub_free_state IM)VLSM_incl_part (machine (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)))) (composite_vlsm_machine (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM)))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
s: vstate equivocators_no_equivocations_vlsm
trX: list (vtransition_item Free)
initial_descriptors: equivocator_descriptors IM
Heq: VLSM_eq (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False))
Hproj: VLSM_full_projection (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (composite_vlsm IM (free_constraint IM)) (lift_sub_label IM (enum index)) (free_sub_free_state IM)input_valid_constraint_subsumption (SubProjectionTraces.sub_IM IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM IM (enum index))) (free_sub_free_constraint IM (free_constraint IM))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
s: vstate equivocators_no_equivocations_vlsm
trX: list (vtransition_item Free)
initial_descriptors: equivocator_descriptors IM
Heq: VLSM_eq (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False))
Hproj: VLSM_full_projection (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (composite_vlsm IM (free_constraint IM)) (lift_sub_label IM (enum index)) (free_sub_free_state IM)
l: composite_label (SubProjectionTraces.sub_IM IM (enum index))
som: (composite_state (SubProjectionTraces.sub_IM IM (enum index)) * option message)%type
H1: input_valid (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM IM (enum index)))) l somfree_sub_free_constraint IM (free_constraint IM) l sommessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
s: vstate equivocators_no_equivocations_vlsm
trX: list (vtransition_item Free)
initial_descriptors: equivocator_descriptors IM
Heq: VLSM_eq (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False))
Hproj: VLSM_full_projection (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (composite_vlsm IM (free_constraint IM)) (lift_sub_label IM (enum index)) (free_sub_free_state IM)
x: sub_index (enum index)
v: vlabel (SubProjectionTraces.sub_IM IM (enum index) x)
som: (composite_state (SubProjectionTraces.sub_IM IM (enum index)) * option message)%type
H1: input_valid (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM IM (enum index)))) (existT x v) somfree_sub_free_constraint IM (free_constraint IM) (existT x v) somexact I.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
s: vstate equivocators_no_equivocations_vlsm
trX: list (vtransition_item Free)
initial_descriptors: equivocator_descriptors IM
Heq: VLSM_eq (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False))
Hproj: VLSM_full_projection (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (composite_vlsm IM (free_constraint IM)) (lift_sub_label IM (enum index)) (free_sub_free_state IM)
x: sub_index (enum index)
v: vlabel (SubProjectionTraces.sub_IM IM (enum index) x)
c: composite_state (SubProjectionTraces.sub_IM IM (enum index))
o: option message
H1: input_valid (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_constraint (SubProjectionTraces.sub_IM IM (enum index)))) (existT x v) (c, o)free_sub_free_constraint IM (free_constraint IM) (existT x v) (c, o)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
s: vstate equivocators_no_equivocations_vlsm
trX: list (vtransition_item Free)
initial_descriptors: equivocator_descriptors IM
HtrX: finite_valid_trace {| vtype := vtype (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))); vmachine := machine (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) |} (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), initial_descriptors (` i)) (composite_state_sub_projection equivocator_IM (enum index) s)) (finite_trace_sub_projection IM (enum index) trX)
Heq: VLSM_eq (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False))
Hproj: VLSM_full_projection (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (composite_vlsm IM (free_constraint IM)) (lift_sub_label IM (enum index)) (free_sub_free_state IM)
HtrX': finite_valid_trace (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), initial_descriptors (` i)) (composite_state_sub_projection equivocator_IM (enum index) s)) (finite_trace_sub_projection IM (enum index) trX)finite_valid_trace Free (Common.equivocators_state_project IM initial_descriptors s) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
s: vstate equivocators_no_equivocations_vlsm
trX: list (vtransition_item Free)
initial_descriptors: equivocator_descriptors IM
HtrX: finite_valid_trace {| vtype := vtype (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))); vmachine := machine (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) |} (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), initial_descriptors (` i)) (composite_state_sub_projection equivocator_IM (enum index) s)) (finite_trace_sub_projection IM (enum index) trX)
Heq: VLSM_eq (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False))
Hproj: VLSM_full_projection (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (composite_vlsm IM (free_constraint IM)) (lift_sub_label IM (enum index)) (free_sub_free_state IM)
HtrX': finite_valid_trace (composite_vlsm IM (free_constraint IM)) (free_sub_free_state IM (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), initial_descriptors (` i)) (composite_state_sub_projection equivocator_IM (enum index) s))) (VLSM_full_projection_finite_trace_project Hproj (finite_trace_sub_projection IM (enum index) trX))finite_valid_trace Free (Common.equivocators_state_project IM initial_descriptors s) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
s: vstate equivocators_no_equivocations_vlsm
trX: list (vtransition_item Free)
initial_descriptors: equivocator_descriptors IM
HtrX: finite_valid_trace {| vtype := vtype (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))); vmachine := machine (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) |} (Common.equivocators_state_project (SubProjectionTraces.sub_IM IM (enum index)) (λ i : sub_index (enum index), initial_descriptors (` i)) (composite_state_sub_projection equivocator_IM (enum index) s)) (finite_trace_sub_projection IM (enum index) trX)
Heq: VLSM_eq (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (pre_loaded_vlsm (free_composite_vlsm (SubProjectionTraces.sub_IM IM (enum index))) (λ _ : message, False))
Hproj: VLSM_full_projection (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (composite_vlsm IM (free_constraint IM)) (lift_sub_label IM (enum index)) (free_sub_free_state IM)
HtrX': finite_valid_trace (composite_vlsm IM (free_constraint IM)) (Common.equivocators_state_project IM initial_descriptors s) (VLSM_full_projection_finite_trace_project Hproj (finite_trace_sub_projection IM (enum index) trX))trX = VLSM_full_projection_finite_trace_project Hproj (finite_trace_sub_projection IM (enum index) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
trX: list (vtransition_item Free)
Hproj: VLSM_full_projection (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (composite_vlsm IM (free_constraint IM)) (lift_sub_label IM (enum index)) (free_sub_free_state IM)trX = VLSM_full_projection_finite_trace_project Hproj (finite_trace_sub_projection IM (enum index) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
a: vtransition_item Free
trX: list (vtransition_item Free)
Hproj: VLSM_full_projection (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (composite_vlsm IM (free_constraint IM)) (lift_sub_label IM (enum index)) (free_sub_free_state IM)
IHtrX: trX = VLSM_full_projection_finite_trace_project Hproj (finite_trace_sub_projection IM (enum index) trX)a :: trX = VLSM_full_projection_finite_trace_project Hproj (finite_trace_sub_projection IM (enum index) (a :: trX))message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
a: vtransition_item Free
trX: list (vtransition_item Free)
Hproj: VLSM_full_projection (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (composite_vlsm IM (free_constraint IM)) (lift_sub_label IM (enum index)) (free_sub_free_state IM)
IHtrX: trX = VLSM_full_projection_finite_trace_project Hproj (finite_trace_sub_projection IM (enum index) trX)a :: trX = VLSM_full_projection_finite_trace_project Hproj match pre_VLSM_projection_transition_item_project (composite_type IM) (composite_type (SubProjectionTraces.sub_IM IM (enum index))) (composite_label_sub_projection_option IM (enum index)) (composite_state_sub_projection IM (enum index)) a with | Some b => b :: finite_trace_sub_projection IM (enum index) trX | None => finite_trace_sub_projection IM (enum index) trX endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
a: vtransition_item Free
trX: list (vtransition_item Free)
Hproj: VLSM_full_projection (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (composite_vlsm IM (free_constraint IM)) (lift_sub_label IM (enum index)) (free_sub_free_state IM)
IHtrX: trX = VLSM_full_projection_finite_trace_project Hproj (finite_trace_sub_projection IM (enum index) trX)a :: trX = VLSM_full_projection_finite_trace_project Hproj match match match decide (projT1 (l a) ∈ enum index) with | left i_in => Some (composite_label_sub_projection IM (enum index) (l a) i_in) | in_right => None end with | Some lY => Some {| l := lY; input := input a; destination := composite_state_sub_projection IM (enum index) (destination a); output := output a |} | None => None end with | Some b => b :: finite_trace_sub_projection IM (enum index) trX | None => finite_trace_sub_projection IM (enum index) trX endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
a: vtransition_item Free
trX: list (vtransition_item Free)
Hproj: VLSM_full_projection (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (composite_vlsm IM (free_constraint IM)) (lift_sub_label IM (enum index)) (free_sub_free_state IM)
IHtrX: trX = VLSM_full_projection_finite_trace_project Hproj (finite_trace_sub_projection IM (enum index) trX)a :: trX = VLSM_full_projection_finite_trace_project Hproj match match match decide (projT1 (l a) ∈ enum index) with | left i_in => Some (composite_label_sub_projection IM (enum index) (l a) i_in) | in_right => None end with | Some lY => Some {| l := lY; input := input a; destination := composite_state_sub_projection IM (enum index) (destination a); output := output a |} | None => None end with | Some b => b :: finite_trace_sub_projection IM (enum index) trX | None => finite_trace_sub_projection IM (enum index) trX endmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
a: vtransition_item Free
trX: list (vtransition_item Free)
Hproj: VLSM_full_projection (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (composite_vlsm IM (free_constraint IM)) (lift_sub_label IM (enum index)) (free_sub_free_state IM)
IHtrX: trX = VLSM_full_projection_finite_trace_project Hproj (finite_trace_sub_projection IM (enum index) trX)
Hla: projT1 (l a) ∈ enum indexa :: trX = VLSM_full_projection_finite_trace_project Hproj ({| l := composite_label_sub_projection IM (enum index) (l a) Hla; input := input a; destination := composite_state_sub_projection IM (enum index) (destination a); output := output a |} :: finite_trace_sub_projection IM (enum index) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
a: vtransition_item Free
trX: list (vtransition_item Free)
Hproj: VLSM_full_projection (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (composite_vlsm IM (free_constraint IM)) (lift_sub_label IM (enum index)) (free_sub_free_state IM)
IHtrX: trX = VLSM_full_projection_finite_trace_project Hproj (finite_trace_sub_projection IM (enum index) trX)
Hla: projT1 (l a) ∈ enum indexa = pre_VLSM_full_projection_trace_item_project (composite_type (SubProjectionTraces.sub_IM IM (enum index))) (composite_type IM) (lift_sub_label IM (enum index)) (free_sub_free_state IM) {| l := composite_label_sub_projection IM (enum index) (l a) Hla; input := input a; destination := composite_state_sub_projection IM (enum index) (destination a); output := output a |}reflexivity. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
i: index
li: vlabel (IM i)
input: option message
destination: state
output: option message
trX: list (vtransition_item Free)
Hproj: VLSM_full_projection (composite_vlsm (SubProjectionTraces.sub_IM IM (enum index)) (free_sub_free_constraint IM (free_constraint IM))) (composite_vlsm IM (free_constraint IM)) (lift_sub_label IM (enum index)) (free_sub_free_state IM)
IHtrX: trX = VLSM_full_projection_finite_trace_project Hproj (finite_trace_sub_projection IM (enum index) trX)
Hla: projT1 (l {| l := existT i li; input := input; destination := destination; output := output |}) ∈ enum index{| l := existT i li; input := input; destination := destination; output := output |} = pre_VLSM_full_projection_trace_item_project (composite_type (SubProjectionTraces.sub_IM IM (enum index))) (composite_type IM) (lift_sub_label IM (enum index)) (free_sub_free_state IM) {| l := composite_label_sub_projection IM (enum index) (l {| l := existT i li; input := input; destination := destination; output := output |}) Hla; input := VLSM.input {| l := existT i li; input := input; destination := destination; output := output |}; destination := composite_state_sub_projection IM (enum index) (VLSM.destination {| l := existT i li; input := input; destination := destination; output := output |}); output := VLSM.output {| l := existT i li; input := input; destination := destination; output := output |} |}message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is, final_state: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: not_equivocating_equivocator_descriptors IM final_descriptors final_state
Htr: finite_valid_trace_from_to equivocators_no_equivocations_vlsm is final_state tr∃ (isX final_stateX : vstate (free_composite_vlsm IM)) (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), isX = equivocators_state_project initial_descriptors is ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project final_descriptors final_state = final_stateX ∧ finite_valid_trace_from_to Free isX final_stateX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is, final_state: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: not_equivocating_equivocator_descriptors IM final_descriptors final_state
Htr: finite_valid_trace_from_to equivocators_no_equivocations_vlsm is final_state tr∃ (isX final_stateX : vstate (free_composite_vlsm IM)) (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), isX = equivocators_state_project initial_descriptors is ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project final_descriptors final_state = final_stateX ∧ finite_valid_trace_from_to Free isX final_stateX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is, final_state: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: not_equivocating_equivocator_descriptors IM final_descriptors final_state
Htr: finite_valid_trace_from_to equivocators_no_equivocations_vlsm is final_state tr
Hfinal_state: finite_trace_last is tr = final_state∃ (isX final_stateX : vstate (free_composite_vlsm IM)) (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), isX = equivocators_state_project initial_descriptors is ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project final_descriptors final_state = final_stateX ∧ finite_valid_trace_from_to Free isX final_stateX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is, final_state: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: not_equivocating_equivocator_descriptors IM final_descriptors final_state
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm is tr
Hfinal_state: finite_trace_last is tr = final_state∃ (isX final_stateX : vstate (free_composite_vlsm IM)) (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), isX = equivocators_state_project initial_descriptors is ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project final_descriptors final_state = final_stateX ∧ finite_valid_trace_from_to Free isX final_stateX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm is tr∃ (isX final_stateX : vstate (free_composite_vlsm IM)) (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), isX = equivocators_state_project initial_descriptors is ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = final_stateX ∧ finite_valid_trace_from_to Free isX final_stateX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm is tr
Hsim: ∀ (sY : vstate Free) (trY : list (vtransition_item Free)), equivocators_partial_trace_project IM final_descriptors (is, tr) = Some (sY, trY) → finite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from Free sY trY∃ (isX final_stateX : vstate (free_composite_vlsm IM)) (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), isX = equivocators_state_project initial_descriptors is ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = final_stateX ∧ finite_valid_trace_from_to Free isX final_stateX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm is tr
Hsim: ∀ (sY : vstate Free) (trY : list (vtransition_item Free)), (if decide (not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)) then match equivocators_trace_project IM final_descriptors tr with | Some (trX, initial_descriptors) => Some ( Common.equivocators_state_project IM initial_descriptors is, trX) | None => None end else None) = Some (sY, trY) → finite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from Free sY trY∃ (isX final_stateX : vstate (free_composite_vlsm IM)) (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), isX = equivocators_state_project initial_descriptors is ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = final_stateX ∧ finite_valid_trace_from_to Free isX final_stateX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm is tr
Hsim: ∀ (sY : vstate Free) (trY : list (vtransition_item Free)), match equivocators_trace_project IM final_descriptors tr with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors is, trX) | None => None end = Some (sY, trY) → finite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from Free sY trY∃ (isX final_stateX : vstate (free_composite_vlsm IM)) (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), isX = equivocators_state_project initial_descriptors is ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = final_stateX ∧ finite_valid_trace_from_to Free isX final_stateX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm is tr
Hsim: ∀ (sY : vstate Free) (trY : list (vtransition_item Free)), match equivocators_trace_project IM final_descriptors tr with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors is, trX) | None => None end = Some (sY, trY) → finite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from Free sY trYfinite_valid_trace_from PreFreeE is trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm is tr
Hsim: ∀ (sY : vstate Free) (trY : list (vtransition_item Free)), match equivocators_trace_project IM final_descriptors tr with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors is, trX) | None => None end = Some (sY, trY) → finite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from Free sY trY
HPreFree_tr: finite_valid_trace_from PreFreeE is tr∃ (isX final_stateX : vstate (free_composite_vlsm IM)) (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), isX = equivocators_state_project initial_descriptors is ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = final_stateX ∧ finite_valid_trace_from_to Free isX final_stateX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm is tr
Hsim: ∀ (sY : vstate Free) (trY : list (vtransition_item Free)), match equivocators_trace_project IM final_descriptors tr with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors is, trX) | None => None end = Some (sY, trY) → finite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from Free sY trYfinite_valid_trace_from PreFreeE is trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Hsim: ∀ (sY : vstate Free) (trY : list (vtransition_item Free)), match equivocators_trace_project IM final_descriptors tr with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors is, trX) | None => None end = Some (sY, trY) → finite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from Free sY trYfinite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from PreFreeE is trapply equivocators_no_equivocations_vlsm_incl_PreFree.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Hsim: ∀ (sY : vstate Free) (trY : list (vtransition_item Free)), match equivocators_trace_project IM final_descriptors tr with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors is, trX) | None => None end = Some (sY, trY) → finite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from Free sY trYVLSM_incl_part (composite_vlsm_machine (Common.equivocator_IM IM) (equivocators_no_equivocations_constraint IM)) (pre_loaded_with_all_messages_vlsm_machine FreeE)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm is tr
Hsim: ∀ (sY : vstate Free) (trY : list (vtransition_item Free)), match equivocators_trace_project IM final_descriptors tr with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors is, trX) | None => None end = Some (sY, trY) → finite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from Free sY trY
HPreFree_tr: finite_valid_trace_from PreFreeE is tr∃ (isX final_stateX : vstate (free_composite_vlsm IM)) (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), isX = equivocators_state_project initial_descriptors is ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = final_stateX ∧ finite_valid_trace_from_to Free isX final_stateX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm is tr
Hsim: ∀ (sY : vstate Free) (trY : list (vtransition_item Free)), match equivocators_trace_project IM final_descriptors tr with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors is, trX) | None => None end = Some (sY, trY) → finite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from Free sY trY
HPreFree_tr: finite_valid_trace_from PreFreeE is tr∃ (isX final_stateX : vstate (free_composite_vlsm IM)) (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), isX = equivocators_state_project initial_descriptors is ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = final_stateX ∧ finite_valid_trace_from_to Free isX final_stateX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm is tr
Hsim: ∀ (sY : vstate Free) (trY : list (vtransition_item Free)), match equivocators_trace_project IM final_descriptors tr with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors is, trX) | None => None end = Some (sY, trY) → finite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from Free sY trY
HPreFree_tr: finite_valid_trace_from PreFreeE is tr
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hinitial_desciptors: Common.proper_equivocator_descriptors IM initial_descriptors is
Hfinal_project: Common.equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (Common.equivocators_state_project IM initial_descriptors is) trX∃ (isX final_stateX : vstate (free_composite_vlsm IM)) (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), isX = equivocators_state_project initial_descriptors is ∧ proper_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = final_stateX ∧ finite_valid_trace_from_to Free isX final_stateX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm is tr
Hsim: ∀ (sY : vstate Free) (trY : list (vtransition_item Free)), match equivocators_trace_project IM final_descriptors tr with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors is, trX) | None => None end = Some (sY, trY) → finite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from Free sY trY
HPreFree_tr: finite_valid_trace_from PreFreeE is tr
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hinitial_desciptors: Common.proper_equivocator_descriptors IM initial_descriptors is
Hfinal_project: Common.equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (Common.equivocators_state_project IM initial_descriptors is) trX∃ (final_stateX : vstate (free_composite_vlsm IM)) (trX0 : list (composite_transition_item IM)) (initial_descriptors0 : equivocator_descriptors IM), ?isX = equivocators_state_project initial_descriptors0 is ∧ proper_equivocator_descriptors initial_descriptors0 is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX0, initial_descriptors0) ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = final_stateX ∧ finite_valid_trace_from_to Free ?isX final_stateX trX0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm is tr
Hsim: ∀ (sY : vstate Free) (trY : list (vtransition_item Free)), match equivocators_trace_project IM final_descriptors tr with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors is, trX) | None => None end = Some (sY, trY) → finite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from Free sY trY
HPreFree_tr: finite_valid_trace_from PreFreeE is tr
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hinitial_desciptors: Common.proper_equivocator_descriptors IM initial_descriptors is
Hfinal_project: Common.equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (Common.equivocators_state_project IM initial_descriptors is) trX∃ (trX0 : list (composite_transition_item IM)) (initial_descriptors0 : equivocator_descriptors IM), ?isX = equivocators_state_project initial_descriptors0 is ∧ proper_equivocator_descriptors initial_descriptors0 is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX0, initial_descriptors0) ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = ?final_stateX ∧ finite_valid_trace_from_to Free ?isX ?final_stateX trX0message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm is tr
Hsim: ∀ (sY : vstate Free) (trY : list (vtransition_item Free)), match equivocators_trace_project IM final_descriptors tr with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors is, trX) | None => None end = Some (sY, trY) → finite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from Free sY trY
HPreFree_tr: finite_valid_trace_from PreFreeE is tr
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hinitial_desciptors: Common.proper_equivocator_descriptors IM initial_descriptors is
Hfinal_project: Common.equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (Common.equivocators_state_project IM initial_descriptors is) trX∃ initial_descriptors0 : equivocator_descriptors IM, ?isX = equivocators_state_project initial_descriptors0 is ∧ proper_equivocator_descriptors initial_descriptors0 is ∧ equivocators_trace_project IM final_descriptors tr = Some (?trX, initial_descriptors0) ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = ?final_stateX ∧ finite_valid_trace_from_to Free ?isX ?final_stateX ?trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm is tr
Hsim: ∀ (sY : vstate Free) (trY : list (vtransition_item Free)), match equivocators_trace_project IM final_descriptors tr with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors is, trX) | None => None end = Some (sY, trY) → finite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from Free sY trY
HPreFree_tr: finite_valid_trace_from PreFreeE is tr
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hinitial_desciptors: Common.proper_equivocator_descriptors IM initial_descriptors is
Hfinal_project: Common.equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (Common.equivocators_state_project IM initial_descriptors is) trX?isX = equivocators_state_project ?initial_descriptors is ∧ proper_equivocator_descriptors ?initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (?trX, ?initial_descriptors) ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = ?final_stateX ∧ finite_valid_trace_from_to Free ?isX ?final_stateX ?trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm is tr
Hsim: ∀ (sY : vstate Free) (trY : list (vtransition_item Free)), match equivocators_trace_project IM final_descriptors tr with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors is, trX) | None => None end = Some (sY, trY) → finite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from Free sY trY
HPreFree_tr: finite_valid_trace_from PreFreeE is tr
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hinitial_desciptors: Common.proper_equivocator_descriptors IM initial_descriptors is
Hfinal_project: Common.equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (Common.equivocators_state_project IM initial_descriptors is) trXproper_equivocator_descriptors ?initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (?trX, ?initial_descriptors) ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = ?final_stateX ∧ finite_valid_trace_from_to Free (equivocators_state_project ?initial_descriptors is) ?final_stateX ?trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm is tr
Hsim: ∀ (sY : vstate Free) (trY : list (vtransition_item Free)), match equivocators_trace_project IM final_descriptors tr with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors is, trX) | None => None end = Some (sY, trY) → finite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from Free sY trY
HPreFree_tr: finite_valid_trace_from PreFreeE is tr
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hinitial_desciptors: Common.proper_equivocator_descriptors IM initial_descriptors is
Hfinal_project: Common.equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (Common.equivocators_state_project IM initial_descriptors is) trXequivocators_trace_project IM final_descriptors tr = Some (?trX, initial_descriptors) ∧ equivocators_state_project final_descriptors (finite_trace_last is tr) = ?final_stateX ∧ finite_valid_trace_from_to Free (equivocators_state_project initial_descriptors is) ?final_stateX ?trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm is tr
Hsim: ∀ (sY : vstate Free) (trY : list (vtransition_item Free)), match equivocators_trace_project IM final_descriptors tr with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors is, trX) | None => None end = Some (sY, trY) → finite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from Free sY trY
HPreFree_tr: finite_valid_trace_from PreFreeE is tr
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hinitial_desciptors: Common.proper_equivocator_descriptors IM initial_descriptors is
Hfinal_project: Common.equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (Common.equivocators_state_project IM initial_descriptors is) trXequivocators_state_project final_descriptors (finite_trace_last is tr) = ?final_stateX ∧ finite_valid_trace_from_to Free (equivocators_state_project initial_descriptors is) ?final_stateX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm is tr
Hsim: ∀ (sY : vstate Free) (trY : list (vtransition_item Free)), match equivocators_trace_project IM final_descriptors tr with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors is, trX) | None => None end = Some (sY, trY) → finite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from Free sY trY
HPreFree_tr: finite_valid_trace_from PreFreeE is tr
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hinitial_desciptors: Common.proper_equivocator_descriptors IM initial_descriptors is
Hfinal_project: Common.equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (Common.equivocators_state_project IM initial_descriptors is) trXfinite_valid_trace_from_to Free (equivocators_state_project initial_descriptors is) (finite_trace_last (Common.equivocators_state_project IM initial_descriptors is) trX) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm is tr
Hsim: ∀ (sY : vstate Free) (trY : list (vtransition_item Free)), match equivocators_trace_project IM final_descriptors tr with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors is, trX) | None => None end = Some (sY, trY) → finite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from Free sY trY
HPreFree_tr: finite_valid_trace_from PreFreeE is tr
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hinitial_desciptors: Common.proper_equivocator_descriptors IM initial_descriptors is
Hfinal_project: Common.equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (Common.equivocators_state_project IM initial_descriptors is) trXfinite_valid_trace_from (free_composite_vlsm IM) (Common.equivocators_state_project IM initial_descriptors is) trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm is tr
Hsim: ∀ (sY : vstate Free) (trY : list (vtransition_item Free)), match equivocators_trace_project IM final_descriptors tr with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors is, trX) | None => None end = Some (sY, trY) → finite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from Free sY trY
HPreFree_tr: finite_valid_trace_from PreFreeE is tr
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hinitial_desciptors: Common.proper_equivocator_descriptors IM initial_descriptors is
Hfinal_project: Common.equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (Common.equivocators_state_project IM initial_descriptors is) trXmatch equivocators_trace_project IM final_descriptors tr with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors is, trX) | None => None end = Some (Common.equivocators_state_project IM initial_descriptors is, trX)reflexivity. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
final_descriptors: equivocator_descriptors IM
is: vstate equivocators_no_equivocations_vlsm
tr: list (composite_transition_item equivocator_IM)
Hproper: Common.proper_equivocator_descriptors IM final_descriptors (finite_trace_last is tr)
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm is tr
Hsim: ∀ (sY : vstate Free) (trY : list (vtransition_item Free)), match equivocators_trace_project IM final_descriptors tr with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors is, trX) | None => None end = Some (sY, trY) → finite_valid_trace_from equivocators_no_equivocations_vlsm is tr → finite_valid_trace_from Free sY trY
HPreFree_tr: finite_valid_trace_from PreFreeE is tr
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hinitial_desciptors: Common.proper_equivocator_descriptors IM initial_descriptors is
Hfinal_project: Common.equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (Common.equivocators_state_project IM initial_descriptors is) trXSome (Common.equivocators_state_project IM initial_descriptors is, trX) = Some (Common.equivocators_state_project IM initial_descriptors is, trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM messageVLSM_projection_type PreFreeE (composite_type IM) (equivocators_total_label_project IM) (equivocators_total_state_project IM)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM messageVLSM_projection_type PreFreeE (composite_type IM) (equivocators_total_label_project IM) (equivocators_total_state_project IM)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM messageweak_projection_transition_consistency_None PreFreeE (composite_type IM) (equivocators_total_label_project IM) (equivocators_total_state_project IM)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
l: vlabel PreFreeE
Hl: equivocators_total_label_project IM l = None
s: state
om: option message
s': state
om': option message
Hv: composite_valid equivocator_IM l (s, om)
Ht: transition l (s, om) = (s', om')equivocators_total_state_project IM s' = equivocators_total_state_project IM smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
sn: vstate (IM i)
Hl: equivocators_total_label_project IM (existT i (Spawn sn)) = None
s: state
om: option message
s': state
om': option message
Hv: vinitial_state_prop (IM i) sn ∧ om = None
Ht: (state_update equivocator_IM s i (equivocator_state_extend (s i) sn), None) = (s', om')equivocators_total_state_project IM s' = equivocators_total_state_project IM smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
ji: nat
li: vlabel (IM i)
Hl: equivocators_total_label_project IM (existT i (ContinueWith ji li)) = None
s: state
om: option message
s': state
om': option message
Hv: match equivocator_state_project (s i) ji with | Some si => vvalid (IM i) li (si, om) | None => False end
Ht: (let (si', om') := match equivocator_state_project (s i) ji with | Some si => let (si', om') := vtransition (IM i) li (si, om) in (equivocator_state_update (s i) ji si', om') | None => (s i, om) end in (state_update equivocator_IM s i si', om')) = (s', om')equivocators_total_state_project IM s' = equivocators_total_state_project IM smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
ji: nat
li: vlabel (IM i)
Hl: equivocators_total_label_project IM (existT i (ForkWith ji li)) = None
s: state
om: option message
s': state
om': option message
Hv: match equivocator_state_project (s i) ji with | Some si => vvalid (IM i) li (si, om) | None => False end
Ht: (let (si', om') := match equivocator_state_project (s i) ji with | Some si => let (si', om') := vtransition (IM i) li (si, om) in (equivocator_state_extend (s i) si', om') | None => (s i, om) end in (state_update equivocator_IM s i si', om')) = (s', om')equivocators_total_state_project IM s' = equivocators_total_state_project IM smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
sn: vstate (IM i)
Hl: equivocators_total_label_project IM (existT i (Spawn sn)) = None
s: state
om: option message
s': state
om': option message
Hv: vinitial_state_prop (IM i) sn ∧ om = None
Ht: (state_update equivocator_IM s i (equivocator_state_extend (s i) sn), None) = (s', om')equivocators_total_state_project IM s' = equivocators_total_state_project IM smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
sn: vstate (IM i)
Hl: equivocators_total_label_project IM (existT i (Spawn sn)) = None
s: state
om: option message
s': state
om': option message
Hv: vinitial_state_prop (IM i) sn ∧ om = Noneequivocators_total_state_project IM (state_update equivocator_IM s i (equivocator_state_extend (s i) sn)) = equivocators_total_state_project IM smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
sn: vstate (IM i)
Hl: equivocators_total_label_project IM (existT i (Spawn sn)) = None
s: state
om: option message
s': state
om': option message
Hv: vinitial_state_prop (IM i) sn ∧ om = NoneCommon.equivocators_state_project IM (zero_descriptor IM) (state_update equivocator_IM s i (equivocator_state_extend (s i) sn)) = Common.equivocators_state_project IM (zero_descriptor IM) smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
sn: vstate (IM i)
Hl: equivocators_total_label_project IM (existT i (Spawn sn)) = None
s: state
om: option message
s': state
om': option message
Hv: vinitial_state_prop (IM i) sn ∧ om = Nonestate_update IM (Common.equivocators_state_project IM (zero_descriptor IM) s) i match zero_descriptor IM i with | NewMachine sn => sn | Existing i0 => match equivocator_state_project (equivocator_state_extend (s i) sn) i0 with | Some si => si | None => equivocator_state_zero (equivocator_state_extend (s i) sn) end end = Common.equivocators_state_project IM (zero_descriptor IM) smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
sn: vstate (IM i)
Hl: equivocators_total_label_project IM (existT i (Spawn sn)) = None
s: state
om: option message
s': state
om': option message
Hv: vinitial_state_prop (IM i) sn ∧ om = Nonestate_update IM (Common.equivocators_state_project IM (zero_descriptor IM) s) i (equivocator_state_s (s i) 0%fin) = Common.equivocators_state_project IM (zero_descriptor IM) sreflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
sn: vstate (IM i)
Hl: equivocators_total_label_project IM (existT i (Spawn sn)) = None
s: state
om: option message
s': state
om': option message
Hv: vinitial_state_prop (IM i) sn ∧ om = NoneCommon.equivocators_state_project IM (zero_descriptor IM) s i = equivocator_state_s (s i) 0%finmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
ji: nat
li: vlabel (IM i)
Hl: equivocators_total_label_project IM (existT i (ContinueWith ji li)) = None
s: state
om: option message
s': state
om': option message
Hv: match equivocator_state_project (s i) ji with | Some si => vvalid (IM i) li (si, om) | None => False end
Ht: (let (si', om') := match equivocator_state_project (s i) ji with | Some si => let (si', om') := vtransition (IM i) li (si, om) in (equivocator_state_update (s i) ji si', om') | None => (s i, om) end in (state_update equivocator_IM s i si', om')) = (s', om')equivocators_total_state_project IM s' = equivocators_total_state_project IM smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
ji: nat
li: vlabel (IM i)
Hl: option_map (existT i) match ji with | 0 => Some li | S _ => None end = None
s: state
om: option message
s': state
om': option message
Hv: match equivocator_state_project (s i) ji with | Some si => vvalid (IM i) li (si, om) | None => False end
Ht: (let (si', om') := match equivocator_state_project (s i) ji with | Some si => let (si', om') := vtransition (IM i) li (si, om) in (equivocator_state_update (s i) ji si', om') | None => (s i, om) end in (state_update equivocator_IM s i si', om')) = (s', om')equivocators_total_state_project IM s' = equivocators_total_state_project IM smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
ji: nat
li: vlabel (IM i)
Hl: option_map (existT i) None = None
s: state
om: option message
s': state
om': option message
Hv: match equivocator_state_project (s i) (S ji) with | Some si => vvalid (IM i) li (si, om) | None => False end
Ht: (let (si', om') := match equivocator_state_project (s i) (S ji) with | Some si => let (si', om') := vtransition (IM i) li (si, om) in (equivocator_state_update (s i) (S ji) si', om') | None => (s i, om) end in (state_update equivocator_IM s i si', om')) = (s', om')equivocators_total_state_project IM s' = equivocators_total_state_project IM smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
ji: nat
li: vlabel (IM i)
s: state
om: option message
s': state
om': option message
Hv: match equivocator_state_project (s i) (S ji) with | Some si => vvalid (IM i) li (si, om) | None => False end
Ht: (let (si', om') := match equivocator_state_project (s i) (S ji) with | Some si => let (si', om') := vtransition (IM i) li (si, om) in (equivocator_state_update (s i) (S ji) si', om') | None => (s i, om) end in (state_update equivocator_IM s i si', om')) = (s', om')equivocators_total_state_project IM s' = equivocators_total_state_project IM smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
ji: nat
li: vlabel (IM i)
s: state
om: option message
s': state
om': option message
si: vstate (IM i)
Hv: vvalid (IM i) li (si, om)
Ht: (let (si', om') := let (si', om') := vtransition (IM i) li (si, om) in (equivocator_state_update (s i) (S ji) si', om') in (state_update equivocator_IM s i si', om')) = (s', om')equivocators_total_state_project IM s' = equivocators_total_state_project IM smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
ji: nat
li: vlabel (IM i)
s: state
om: option message
s': state
om': option message
si: vstate (IM i)
Hv: vvalid (IM i) li (si, om)
si': state
_om': option message
Ht: (state_update equivocator_IM s i (equivocator_state_update (s i) (S ji) si'), _om') = (s', om')equivocators_total_state_project IM s' = equivocators_total_state_project IM smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
ji: nat
li: vlabel (IM i)
s: state
om: option message
s': state
om': option message
si: vstate (IM i)
Hv: vvalid (IM i) li (si, om)
si': state
_om': option messageequivocators_total_state_project IM (state_update equivocator_IM s i (equivocator_state_update (s i) (S ji) si')) = equivocators_total_state_project IM smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
ji: nat
li: vlabel (IM i)
s: state
om: option message
s': state
om': option message
si: vstate (IM i)
Hv: vvalid (IM i) li (si, om)
si': state
_om': option messageCommon.equivocators_state_project IM (zero_descriptor IM) (state_update equivocator_IM s i (equivocator_state_update (s i) (S ji) si')) = Common.equivocators_state_project IM (zero_descriptor IM) smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
ji: nat
li: vlabel (IM i)
s: state
om: option message
s': state
om': option message
si: vstate (IM i)
Hv: vvalid (IM i) li (si, om)
si': state
_om': option messagestate_update IM (Common.equivocators_state_project IM (zero_descriptor IM) s) i match zero_descriptor IM i with | NewMachine sn => sn | Existing i0 => match equivocator_state_project (equivocator_state_update (s i) (S ji) si') i0 with | Some si => si | None => equivocator_state_zero (equivocator_state_update (s i) (S ji) si') end end = Common.equivocators_state_project IM (zero_descriptor IM) smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
ji: nat
li: vlabel (IM i)
s: state
om: option message
s': state
om': option message
si: vstate (IM i)
Hv: vvalid (IM i) li (si, om)
si': state
_om': option messagestate_update IM (Common.equivocators_state_project IM (zero_descriptor IM) s) i (equivocator_state_s (s i) 0%fin) = Common.equivocators_state_project IM (zero_descriptor IM) sreflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
ji: nat
li: vlabel (IM i)
s: state
om: option message
s': state
om': option message
si: vstate (IM i)
Hv: vvalid (IM i) li (si, om)
si': state
_om': option messageCommon.equivocators_state_project IM (zero_descriptor IM) s i = equivocator_state_s (s i) 0%finmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
ji: nat
li: vlabel (IM i)
Hl: equivocators_total_label_project IM (existT i (ForkWith ji li)) = None
s: state
om: option message
s': state
om': option message
Hv: match equivocator_state_project (s i) ji with | Some si => vvalid (IM i) li (si, om) | None => False end
Ht: (let (si', om') := match equivocator_state_project (s i) ji with | Some si => let (si', om') := vtransition (IM i) li (si, om) in (equivocator_state_extend (s i) si', om') | None => (s i, om) end in (state_update equivocator_IM s i si', om')) = (s', om')equivocators_total_state_project IM s' = equivocators_total_state_project IM smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
ji: nat
li: vlabel (IM i)
Hl: equivocators_total_label_project IM (existT i (ForkWith ji li)) = None
s: state
om: option message
s': state
om': option message
si: vstate (IM i)
Hv: vvalid (IM i) li (si, om)
Ht: (let (si', om') := let (si', om') := vtransition (IM i) li (si, om) in (equivocator_state_extend (s i) si', om') in (state_update equivocator_IM s i si', om')) = (s', om')equivocators_total_state_project IM s' = equivocators_total_state_project IM smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
ji: nat
li: vlabel (IM i)
Hl: equivocators_total_label_project IM (existT i (ForkWith ji li)) = None
s: state
om: option message
s': state
om': option message
si: vstate (IM i)
Hv: vvalid (IM i) li (si, om)
si': state
_om': option message
Ht: (state_update equivocator_IM s i (equivocator_state_extend (s i) si'), _om') = (s', om')equivocators_total_state_project IM s' = equivocators_total_state_project IM smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
ji: nat
li: vlabel (IM i)
Hl: equivocators_total_label_project IM (existT i (ForkWith ji li)) = None
s: state
om: option message
s': state
om': option message
si: vstate (IM i)
Hv: vvalid (IM i) li (si, om)
si': state
_om': option messageequivocators_total_state_project IM (state_update equivocator_IM s i (equivocator_state_extend (s i) si')) = equivocators_total_state_project IM smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
ji: nat
li: vlabel (IM i)
Hl: equivocators_total_label_project IM (existT i (ForkWith ji li)) = None
s: state
om: option message
s': state
om': option message
si: vstate (IM i)
Hv: vvalid (IM i) li (si, om)
si': state
_om': option messageCommon.equivocators_state_project IM (zero_descriptor IM) (state_update equivocator_IM s i (equivocator_state_extend (s i) si')) = Common.equivocators_state_project IM (zero_descriptor IM) smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
ji: nat
li: vlabel (IM i)
Hl: equivocators_total_label_project IM (existT i (ForkWith ji li)) = None
s: state
om: option message
s': state
om': option message
si: vstate (IM i)
Hv: vvalid (IM i) li (si, om)
si': state
_om': option messagestate_update IM (Common.equivocators_state_project IM (zero_descriptor IM) s) i match zero_descriptor IM i with | NewMachine sn => sn | Existing i0 => match equivocator_state_project (equivocator_state_extend (s i) si') i0 with | Some si => si | None => equivocator_state_zero (equivocator_state_extend (s i) si') end end = Common.equivocators_state_project IM (zero_descriptor IM) smessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
ji: nat
li: vlabel (IM i)
Hl: equivocators_total_label_project IM (existT i (ForkWith ji li)) = None
s: state
om: option message
s': state
om': option message
si: vstate (IM i)
Hv: vvalid (IM i) li (si, om)
si': state
_om': option messagestate_update IM (Common.equivocators_state_project IM (zero_descriptor IM) s) i (equivocator_state_s (s i) 0%fin) = Common.equivocators_state_project IM (zero_descriptor IM) sreflexivity. Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
i: index
ji: nat
li: vlabel (IM i)
Hl: equivocators_total_label_project IM (existT i (ForkWith ji li)) = None
s: state
om: option message
s': state
om': option message
si: vstate (IM i)
Hv: vvalid (IM i) li (si, om)
si': state
_om': option messageCommon.equivocators_state_project IM (zero_descriptor IM) s i = equivocator_state_s (s i) 0%finmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM messageVLSM_projection equivocators_no_equivocations_vlsm Free (equivocators_total_label_project IM) (equivocators_total_state_project IM)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM messageVLSM_projection equivocators_no_equivocations_vlsm Free (equivocators_total_label_project IM) (equivocators_total_state_project IM)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message∀ (sX : state) (trX : list transition_item), finite_valid_trace_from equivocators_no_equivocations_vlsm sX trX → equivocators_total_state_project IM (finite_trace_last sX trX) = finite_trace_last (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type equivocators_no_equivocations_vlsm) (type Free) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message∀ (sX : state) (trX : list transition_item), finite_valid_trace equivocators_no_equivocations_vlsm sX trX → finite_valid_trace Free (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type equivocators_no_equivocations_vlsm) (type Free) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message∀ (sX : state) (trX : list transition_item), finite_valid_trace_from equivocators_no_equivocations_vlsm sX trX → equivocators_total_state_project IM (finite_trace_last sX trX) = finite_trace_last (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type equivocators_no_equivocations_vlsm) (type Free) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm sX trXequivocators_total_state_project IM (finite_trace_last sX trX) = finite_trace_last (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type equivocators_no_equivocations_vlsm) (type Free) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm sX trXfinite_valid_trace_from PreFreeE sX trXapply equivocators_no_equivocations_vlsm_incl_PreFree.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace_from equivocators_no_equivocations_vlsm sX trXVLSM_incl_part (composite_vlsm_machine (Common.equivocator_IM IM) (equivocators_no_equivocations_constraint IM)) (pre_loaded_with_all_messages_vlsm_machine FreeE)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message∀ (sX : state) (trX : list transition_item), finite_valid_trace equivocators_no_equivocations_vlsm sX trX → finite_valid_trace Free (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type equivocators_no_equivocations_vlsm) (type Free) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace equivocators_no_equivocations_vlsm sX trXfinite_valid_trace Free (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type equivocators_no_equivocations_vlsm) (type Free) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace equivocators_no_equivocations_vlsm sX trXfinite_valid_trace PreFreeE sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace equivocators_no_equivocations_vlsm sX trX
Hpre_tr: finite_valid_trace PreFreeE sX trXfinite_valid_trace Free (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type equivocators_no_equivocations_vlsm) (type Free) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace equivocators_no_equivocations_vlsm sX trXfinite_valid_trace PreFreeE sX trXapply equivocators_no_equivocations_vlsm_incl_PreFree.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace equivocators_no_equivocations_vlsm sX trXVLSM_incl_part (composite_vlsm_machine (Common.equivocator_IM IM) (equivocators_no_equivocations_constraint IM)) (pre_loaded_with_all_messages_vlsm_machine FreeE)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace equivocators_no_equivocations_vlsm sX trX
Hpre_tr: finite_valid_trace PreFreeE sX trXfinite_valid_trace Free (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type equivocators_no_equivocations_vlsm) (type Free) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace equivocators_no_equivocations_vlsm sX trX
Hpre_tr: finite_valid_trace PreFreeE sX trX
Hsim: equivocators_partial_trace_project IM (zero_descriptor IM) (sX, trX) = Some (equivocators_total_state_project IM sX, equivocators_total_trace_project IM trX) → finite_valid_trace equivocators_no_equivocations_vlsm sX trX → finite_valid_trace Free (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)finite_valid_trace Free (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type equivocators_no_equivocations_vlsm) (type Free) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace equivocators_no_equivocations_vlsm sX trX
Hpre_tr: finite_valid_trace PreFreeE sX trX
Hsim: equivocators_partial_trace_project IM (zero_descriptor IM) (sX, trX) = Some (equivocators_total_state_project IM sX, equivocators_total_trace_project IM trX) → finite_valid_trace equivocators_no_equivocations_vlsm sX trX → finite_valid_trace Free (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)equivocators_partial_trace_project IM (zero_descriptor IM) (sX, trX) = Some (equivocators_total_state_project IM sX, equivocators_total_trace_project IM trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace equivocators_no_equivocations_vlsm sX trX
Hpre_tr: finite_valid_trace PreFreeE sX trX
Hsim: finite_valid_trace equivocators_no_equivocations_vlsm sX trX → finite_valid_trace Free (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)finite_valid_trace Free (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type equivocators_no_equivocations_vlsm) (type Free) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace equivocators_no_equivocations_vlsm sX trX
Hpre_tr: finite_valid_trace PreFreeE sX trX
Hsim: equivocators_partial_trace_project IM (zero_descriptor IM) (sX, trX) = Some (equivocators_total_state_project IM sX, equivocators_total_trace_project IM trX) → finite_valid_trace equivocators_no_equivocations_vlsm sX trX → finite_valid_trace Free (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)equivocators_partial_trace_project IM (zero_descriptor IM) (sX, trX) = Some (equivocators_total_state_project IM sX, equivocators_total_trace_project IM trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace equivocators_no_equivocations_vlsm sX trX
Hpre_tr: finite_valid_trace PreFreeE sX trX
Hsim: equivocators_partial_trace_project IM (zero_descriptor IM) (sX, trX) = Some (equivocators_total_state_project IM sX, equivocators_total_trace_project IM trX) → finite_valid_trace equivocators_no_equivocations_vlsm sX trX → finite_valid_trace Free (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)(if decide (not_equivocating_equivocator_descriptors IM (zero_descriptor IM) (finite_trace_last sX trX)) then match equivocators_trace_project IM (zero_descriptor IM) trX with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors sX, trX) | None => None end else None) = Some (equivocators_total_state_project IM sX, equivocators_total_trace_project IM trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace equivocators_no_equivocations_vlsm sX trX
Hpre_tr: finite_valid_trace PreFreeE sX trX
Hsim: equivocators_partial_trace_project IM (zero_descriptor IM) (sX, trX) = Some (equivocators_total_state_project IM sX, equivocators_total_trace_project IM trX) → finite_valid_trace equivocators_no_equivocations_vlsm sX trX → finite_valid_trace Free (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)match equivocators_trace_project IM (zero_descriptor IM) trX with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors sX, trX) | None => None end = Some (equivocators_total_state_project IM sX, equivocators_total_trace_project IM trX)reflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace equivocators_no_equivocations_vlsm sX trX
Hpre_tr: finite_valid_trace PreFreeE sX trX
Hsim: equivocators_partial_trace_project IM (zero_descriptor IM) (sX, trX) = Some (equivocators_total_state_project IM sX, equivocators_total_trace_project IM trX) → finite_valid_trace equivocators_no_equivocations_vlsm sX trX → finite_valid_trace Free (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)Some (Common.equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX) = Some (equivocators_total_state_project IM sX, equivocators_total_trace_project IM trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace equivocators_no_equivocations_vlsm sX trX
Hpre_tr: finite_valid_trace PreFreeE sX trX
Hsim: finite_valid_trace equivocators_no_equivocations_vlsm sX trX → finite_valid_trace Free (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)finite_valid_trace Free (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type equivocators_no_equivocations_vlsm) (type Free) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace Free (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)
Hpre_tr: finite_valid_trace PreFreeE sX trX
Hsim: finite_valid_trace equivocators_no_equivocations_vlsm sX trX → finite_valid_trace Free (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)finite_valid_trace Free (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type equivocators_no_equivocations_vlsm) (type Free) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace Free (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)
Hpre_tr: finite_valid_trace PreFreeE sX trX
Hsim: finite_valid_trace equivocators_no_equivocations_vlsm sX trX → finite_valid_trace Free (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)
tr: list transition_item
Heqtr: tr = pre_VLSM_projection_trace_project (type equivocators_no_equivocations_vlsm) (type Free) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trXfinite_valid_trace Free (equivocators_total_state_project IM sX) trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace Free (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)
Hpre_tr: finite_valid_trace PreFreeE sX trX
Hsim: finite_valid_trace equivocators_no_equivocations_vlsm sX trX → finite_valid_trace Free (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)
tr: list transition_item
Heqtr: tr = pre_VLSM_projection_trace_project (type equivocators_no_equivocations_vlsm) (type Free) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trXequivocators_total_trace_project IM trX = trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace Free (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)
Hpre_tr: finite_valid_trace PreFreeE sX trX
Hsim: finite_valid_trace equivocators_no_equivocations_vlsm sX trX → finite_valid_trace Free (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)equivocators_total_trace_project IM trX = pre_VLSM_projection_trace_project (type equivocators_no_equivocations_vlsm) (type Free) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trXapply (equivocators_total_VLSM_projection_trace_project IM (proj1 Hpre_tr)). Qed.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace Free (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)
Hpre_tr: finite_valid_trace PreFreeE sX trX
Hsim: finite_valid_trace equivocators_no_equivocations_vlsm sX trX → finite_valid_trace Free (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)pre_VLSM_projection_trace_project (type equivocators_no_equivocations_vlsm) (type Free) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX = equivocators_total_trace_project IM trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM messageVLSM_projection PreFreeE PreFree (equivocators_total_label_project IM) (equivocators_total_state_project IM)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM messageVLSM_projection PreFreeE PreFree (equivocators_total_label_project IM) (equivocators_total_state_project IM)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
H1: finite_valid_trace_from PreFreeE sX trXequivocators_total_state_project IM (finite_trace_last sX trX) = finite_trace_last (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type PreFreeE) (type PreFree) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message∀ (sX : state) (trX : list transition_item), finite_valid_trace PreFreeE sX trX → finite_valid_trace PreFree (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type PreFreeE) (type PreFree) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
H1: finite_valid_trace_from PreFreeE sX trXequivocators_total_state_project IM (finite_trace_last sX trX) = finite_trace_last (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type PreFreeE) (type PreFree) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)assumption.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
H1: finite_valid_trace_from PreFreeE sX trXfinite_valid_trace_from PreFreeE sX trXmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message∀ (sX : state) (trX : list transition_item), finite_valid_trace PreFreeE sX trX → finite_valid_trace PreFree (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type PreFreeE) (type PreFree) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace PreFreeE sX trXfinite_valid_trace PreFree (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type PreFreeE) (type PreFree) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace PreFreeE sX trX
Hsim: equivocators_partial_trace_project IM (zero_descriptor IM) (sX, trX) = Some (equivocators_total_state_project IM sX, equivocators_total_trace_project IM trX) → finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (Common.equivocator_IM IM))) sX trX → finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)finite_valid_trace PreFree (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type PreFreeE) (type PreFree) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace PreFreeE sX trX
Hsim: equivocators_partial_trace_project IM (zero_descriptor IM) (sX, trX) = Some (equivocators_total_state_project IM sX, equivocators_total_trace_project IM trX) → finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (Common.equivocator_IM IM))) sX trX → finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)equivocators_partial_trace_project IM (zero_descriptor IM) (sX, trX) = Some (equivocators_total_state_project IM sX, equivocators_total_trace_project IM trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace PreFreeE sX trX
Hsim: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (Common.equivocator_IM IM))) sX trX → finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)finite_valid_trace PreFree (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type PreFreeE) (type PreFree) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace PreFreeE sX trX
Hsim: equivocators_partial_trace_project IM (zero_descriptor IM) (sX, trX) = Some (equivocators_total_state_project IM sX, equivocators_total_trace_project IM trX) → finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (Common.equivocator_IM IM))) sX trX → finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)equivocators_partial_trace_project IM (zero_descriptor IM) (sX, trX) = Some (equivocators_total_state_project IM sX, equivocators_total_trace_project IM trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace PreFreeE sX trX
Hsim: equivocators_partial_trace_project IM (zero_descriptor IM) (sX, trX) = Some (equivocators_total_state_project IM sX, equivocators_total_trace_project IM trX) → finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (Common.equivocator_IM IM))) sX trX → finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)(if decide (not_equivocating_equivocator_descriptors IM (zero_descriptor IM) (finite_trace_last sX trX)) then match equivocators_trace_project IM (zero_descriptor IM) trX with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors sX, trX) | None => None end else None) = Some (equivocators_total_state_project IM sX, equivocators_total_trace_project IM trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace PreFreeE sX trX
Hsim: equivocators_partial_trace_project IM (zero_descriptor IM) (sX, trX) = Some (equivocators_total_state_project IM sX, equivocators_total_trace_project IM trX) → finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (Common.equivocator_IM IM))) sX trX → finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)match equivocators_trace_project IM (zero_descriptor IM) trX with | Some (trX, initial_descriptors) => Some (Common.equivocators_state_project IM initial_descriptors sX, trX) | None => None end = Some (equivocators_total_state_project IM sX, equivocators_total_trace_project IM trX)reflexivity.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace PreFreeE sX trX
Hsim: equivocators_partial_trace_project IM (zero_descriptor IM) (sX, trX) = Some (equivocators_total_state_project IM sX, equivocators_total_trace_project IM trX) → finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (Common.equivocator_IM IM))) sX trX → finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)Some (Common.equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX) = Some (equivocators_total_state_project IM sX, equivocators_total_trace_project IM trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace PreFreeE sX trX
Hsim: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (Common.equivocator_IM IM))) sX trX → finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)finite_valid_trace PreFree (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type PreFreeE) (type PreFree) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace PreFreeE sX trX
Hpr: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)
Hsim: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (Common.equivocator_IM IM))) sX trX → finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)finite_valid_trace PreFree (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type PreFreeE) (type PreFree) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace PreFreeE sX trX
Hpr: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)
Hsim: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (Common.equivocator_IM IM))) sX trX → finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)
tr: list transition_item
Heqtr: tr = pre_VLSM_projection_trace_project (type PreFreeE) (type PreFree) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trXfinite_valid_trace PreFree (equivocators_total_state_project IM sX) trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace PreFreeE sX trX
Hpr: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)
Hsim: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (Common.equivocator_IM IM))) sX trX → finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)
tr: list transition_item
Heqtr: tr = pre_VLSM_projection_trace_project (type PreFreeE) (type PreFree) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trXequivocators_total_trace_project IM trX = trmessage, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace PreFreeE sX trX
Hpr: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)
Hsim: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (Common.equivocator_IM IM))) sX trX → finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)equivocators_total_trace_project IM trX = pre_VLSM_projection_trace_project (type PreFreeE) (type PreFree) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trXapply (equivocators_total_VLSM_projection_trace_project IM (proj1 Htr)). Qed. End equivocators_composition_vlsm_projection.message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: ∀ i : index, HasBeenSentCapability (IM i)
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM: VLSM message
equivocators_state_project:= Common.equivocators_state_project IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: equivocator_descriptors IM → ∀ i : index, MachineDescriptor (IM i) → ∀ j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= pre_loaded_with_all_messages_vlsm Free: VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM (enum index): sub_index (enum index) → VLSM message
sX: state
trX: list transition_item
Htr: finite_valid_trace PreFreeE sX trX
Hpr: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)
Hsim: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (Common.equivocator_IM IM))) sX trX → finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_total_state_project IM sX) (equivocators_total_trace_project IM trX)pre_VLSM_projection_trace_project (type PreFreeE) (type PreFree) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX = equivocators_total_trace_project IM trX